Ajax简介:

Ajax:局部刷新,原理上也是一个js,js调用服务器的远程接口刷新局部页面数据。

Ajax = 异步 JavaScript 和 XML标准通用标记语言的子集)。

Ajax 是一种用于创建快速动态网页的技术。

Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 [1]

通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

方法一:因为浮动窗的内容可能会时常发生变化,如果想固定选择浮动框中的某一项,比如第三项,代码如下:

#encoding=utf-8
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import traceback
import unittest
import time class TestDemo(unittest.TestCase): def setUp(self):
# 启动Chrome浏览器
self.driver = webdriver.Ie(executable_path = "e:\\IEDriverServer") def test_AjaxDivOptionByIndex(self):
url = "http://www.sogou.com/"
# 访问sogou的首页
self.driver.get(url)
try:
# 找到搜狗首页中的搜索输入框页面元素
searchBox = self.driver.find_element_by_id("query")
# 在搜索输入框中输入“光荣之路”
searchBox.send_keys(u"光荣之路")
# 等待2秒,以便悬浮框加载完成
time.sleep(2)
# 查找浮动框中的第三选项,只要更改li[3]中的索引数字,
# 就可以实现任意单击选项浮动框中的选项。注意,索引从1开始
suggetion_option = self.driver. \
find_element_by_xpath("//*[@id='vl']/div[1]/ul/li[3]")
#print suggetion_option.text
# 点击找到的选项
suggetion_option.click()
time.sleep(3)
except NoSuchElementException, e:
# 打印异常堆栈信息
print traceback.print_exc() def tearDown(self):
# 退出IE浏览器
self.driver.quit() if __name__ == '__main__':
unittest.main()

方法二:通过匹配模糊内容选择悬浮框中的选项,代码如下:

#encoding=utf-8
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
import traceback
import unittest
import time class TestDemo(unittest.TestCase): def setUp(self):
# 启动Chrome浏览器
self.driver = webdriver.Ie(executable_path = "e:\\IEDriverServer") def test_AjaxDivOptionByWords(self):
url = "http://www.sogou.com/"
# 访问sogou的首页
self.driver.get(url)
try:
# 找到搜狗首页中的搜索输入框页面元素
searchBox = self.driver.find_element_by_id("query")
# 在搜索输入框中输入“光荣之路”
searchBox.send_keys(u"光荣之路")
# 等待2秒,以便悬浮框加载完成
time.sleep(2)
# 查找内容包含“篮球电影”的悬浮选项
suggetion_option = self.driver.\
find_element_by_xpath("//ul/li[contains(., '电影')]")
# 点击找到的选项
suggetion_option.click()
time.sleep(3)
except NoSuchElementException, e:
# 打印异常堆栈信息
print traceback.print_exc() def tearDown(self):
# 退出IE浏览器
self.driver.quit() if __name__ == '__main__':
unittest.main()

方法三:通过模拟键盘下箭头进行选择悬浮窗选项,代码如下:

#encoding=utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import unittest
import time class TestDemo(unittest.TestCase): def setUp(self):
# 启动Chrome浏览器
self.driver = webdriver.Ie(executable_path = "e:\\IEDriverServer") def test_AjaxDivOptionByKeys(self):
url = "http://www.sogou.com/"
# 访问sogou的首页
self.driver.get(url)
# 找到搜狗首页中的搜索输入框页面元素
searchBox = self.driver.find_element_by_id("query")
# 在搜索输入框中输入“光荣之路”
searchBox.send_keys(u"光荣之路")
# 等待2秒,以便悬浮框加载完成
time.sleep(2)
for i in range(3):
# 选择悬浮框中中第几个联想关键词选项就循环几次
# 模拟键盘点击下箭头
searchBox.send_keys(Keys.DOWN)
time.sleep(0.5)
# 当按下箭头到想要选择的选项后,再模拟键盘点击回车键,选中该选项
searchBox.send_keys(Keys.ENTER)
time.sleep(3) def tearDown(self):
# 退出IE浏览器
self.driver.quit() if __name__ == '__main__':
unittest.main()

最新文章

  1. delete
  2. Kernel Methods - An conclusion
  3. 轻量级容器Docker+微服务+RESTful API
  4. .NET AES加解密(128位)
  5. [51NOD1024] 矩阵中不重复的元素(数学,精度)
  6. ubuntu下apt-get update出现hash校验和错误
  7. 追MM与Java的23种设计模式
  8. 注册一个比较大小Handlebars
  9. 学习java随笔第一篇:搭建java平台(java se)
  10. CSS多列、用户界面属性
  11. Nio经典工作方式
  12. 读书笔记——《C++ Concurrency IN ACTION》
  13. MyBatis(八)联合查询 级联属性封装结果集
  14. Golang 入门系列(六)理解Go中的协程(Goroutine)
  15. Stars HDU - 1541
  16. sql 将一列一逗号分隔拼成字符串
  17. java-Arrays类
  18. 动态参数(*args,**kwargs),命名空间和作用域,global和nonlocal,函数的嵌套
  19. 【读书笔记】Linux内核设计与实现(第十八章)
  20. Alpha 冲刺一

热门文章

  1. leetcode84 Largest Rectangle in Histogram
  2. PHPStorm2017.1.3永久激活方法之本地破解激活
  3. 初学Vue.js(2.x版本)
  4. Date-DateFormat-Calendar-Math-regex
  5. webm视频转换 其他视频格式转换为webm格式
  6. MFC制作简单通讯录程序
  7. Mac版 Slickedit 2013 v18.0.3.3 破解
  8. css对应中文字的英文名称
  9. CSS中padding、margin两个重要属性的详细介绍及举例说明
  10. jsp之获传统方式取后台数据