webdriver高级应用- 在ajax方式产生的浮动框中,单击选择包含某个关键字的选项
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()
webdriver高级应用- 在ajax方式产生的浮动框中,单击选择包含某个关键字的选项的更多相关文章
- Python3 Selenium自动化web测试 ==> 第七节 WebDriver高级应用 -- 浮动框中,单击选择某个关键字选项
学习目的: 了解WebDriver的高级应用 正式步骤: 测试Python3代码 # -*- coding:utf-8 -*- from selenium import webdriver from ...
- Selenium WebDriver高级应用
WebDriver高级应用 public class Demo4 { WebDriver driver; // @BeforeMethod:在每个测试方法开始运行前执行 @BeforeMethod p ...
- WebDriver高级应用实例(1)
1.1使用JavaScriptExecutor单击元素 被测网页的网址: http://www.baidu.com Java语言版本的API实例代码 import org.testng.annotat ...
- selenium处理Ajax浮动框方法
package com.allin.pc;import java.util.List;import org.openqa.selenium.WebElement;import org.openqa.s ...
- Selenium+java - Ajax浮动框处理
Ajax浮动框 我们常遇到的某些网站首页输入框,点击后显示的浮动下拉热点,如下图: 实际案例 模拟场景如下: hao123首页搜索输入框,单击搜索框,点击浮动框中的哪吒票房破30亿,单击后选项的文字内 ...
- ASP.NET MVC5高级编程 之 Ajax
jQuery不仅支持所有现代浏览器,包括IE.Firefox.Safari.Opera和Chrome等,还可以在编写代码和浏览器API冲突时隐藏不一致性(和错误). 1. jQuery jQuery擅 ...
- Selenium WebDriver高级用法
Selenium GitHub地址 选择合适的WebDrvier WebDriver是一个接口,它有几种实现,分别是HtmlUnitDrvier.FirefoxDriver.InternetExplo ...
- Webdriver处理页面元素的方式
Webdriver执行JavaScript代码的方式 WebDriver driver = new ChromeDriver(); JavascriptExecutor jse = (Javascri ...
- Ajax方式上传文件
用到两个对象 第一个对象:FormData 第二个对象:XMLHttpRequest 目前新版的Firefox 与 Chrome 等支持HTML5的浏览器完美的支持这两个对象,但IE9尚未支持 For ...
随机推荐
- ABAP接口用法
1.定义接口INTERFACE intf [PUBLIC]. [components] ENDINTERFACE. 2.注意点: 2.1.接口中所定义的所有东西默认都是公共的,所以不用也不能写PU ...
- ABAP跳转屏幕
1.call transaction语句跳转屏幕 '. CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN. . 2.调用函数 CALL FUNCTION 'M ...
- Appium基础五:appium相关API
1.获取信息类: 1.1 获取当前界面的组件: driver.currentActivity(); //获取当前界面的activity,可用于断言是否跳转到预期的activity 1.2 获取当前页面 ...
- filter和map的使 使得数组对象变数组
let UnitList = this.paytypeData.filter( item => item.CheckBox === true ).map(axis => axis.Unit ...
- 编写SQL语句操作数据库(慕课SQLite笔记)
安卓常用数据存储方式之一SQLite学习及操作笔记 0.视频地址:http://www.imooc.com/video/3382 1.每个程序都有自己的数据库 默认情况下是各自互不干扰 1)创建一个数 ...
- bug {was not declared in this scope}
使用自己定义的结构体作为返回值的时候,出现了 ...was not declared in this scope 检查了各种头文件,把缓存也都删掉了还是不行. 结果,发现,应该这样用vector< ...
- SCCM Collection 集合获取计算机最后启动时间
获取计算机客户端最后一次启动时间,我们可以通过多种来源获取,如活动目录组 ,而不仅仅是SCCM 收集,希望对您有所帮助,下面分享PowerShell 脚本 # 1 $CollectionName = ...
- 微软分布式机器学习工具包DMTK——初窥门径
在现在机器学习如日中天的大背景下,微软亚洲研究院的实习岗位中,机器学习组的工作也是维护DMTK,参与算法改进,那么在此之前我们得了解DMTK是个啥. DMTK由一个服务于分布式机器学习的框架和一组分布 ...
- 第008课_第1个ARM落版程序及引申
form:第008课_第1个ARM裸板程序及引申 第001节_辅线1_硬件知识_LED原理图 当我们学习C语言的时候,我们会写个Hello程序.那当我们下ARM程序,也该有一个简单的程序引领我们入门, ...
- 2019全套Java视频 免费赠送
本人今年刚看完这套课程找到工作了 待遇还不错 现在送给大家 网盘链接:https://pan.baidu.com/s/1cEK6WoXS4F9SRgj1bZclqg提取码:bjl8希望对大家有用 一起 ...