
如何选取元素 selenium 提供如下强大的定位元素的方法。 id=id name=name dom=javascriptExpression xpath=xpathExpression css=cssSelectorSyntax
1 通过 ID,name 选择元素 : 如 seleniumtype("id=q","百度"); seleniumtype("name=search","百度")
2 link= 根据链接文字来 *** 作:如 seleniumclick("link=个人资料");
3 根据 XPath 来选择元素 :XPath Checker xpath=//img[@alt='The image alt text'] xpath=//table[@id='table1']//tr[4]/td[2] xpath=//a[contains(@href,'#id1')] xpath=//a[contains(@href,'#id1')]/@class xpath=(//table[@class='stylee'])//th[text()='theHeaderText']//td xpath=//input[@name='name2' and @value='yes'] xpath=//[text()="right"] 如: seleniumtype("xpath=//input[@name='useremail']", "xxx@123com"); // 向 input 中 type 为 text 的栏位键入信息 seleniumcheck("xpath=//input[(@name='usersex')and(@value='男')]");// 向 input 中 type 为 radiod 的选取
4 dom 选择 dom=documentforms['myForm']myDropdown { return documentlinks[1]; }; foo();
5 css 选择器这个不常用,它可以支持 css2, css3 选择器
七使用 selenium 这个对象来进行测试 1 获取标 : assertEquals("Insert title here", seleniumgetTitle()); 2 判断页面是否存在一个 useremail 元 素 :assertTrue(seleniumisElementPresent("xpath=//input[@name='useremail']")); 得到文本框里的文 字: assertEquals(seleniumgetValue("xpath=//input[@name='userusername']"),"xxxaas"); 测试 check box : assertTrue(seleniumisChecked("xpath=//input[(@name='usersex')and(@value=' 男')]")); 点击提交按钮 : seleniumclick("xpath=//input[@type='button']"); 等待页面载入 : seleniumwaitForPageToLoad("2000"); 验证指定文本出现在提交给用户的页面上: assertTrue(seleniumisTextPresent("验证码输入有误,请核实后再 输入")); 判断下拉框里选择了哪个选 项 :assertEquals(seleniumgetSelectedIndex("xpath=//SELECT[@name='HATIMING']"), "1"); 如何测试一些错误消息的显示?assertTrue(seleniumgetBodyText()indexOf("错误消息 ")>=0); getBodyText 返回的时浏览器页面上的文字,不回包含 html 代码的,如果要显示 html 代码,用下面 这个:seleniumgetHtmlSource(); dom=documentimages[56] dom=function foo() link=textPattern css=a[href="#id3"] css=span#firstChild + span 2 3 4 5 6 7 8 9
要点击一个 Menu 时需要对 SPAN 元素进行 *** 作,后来在 Selenium 的论坛中找到了答案。示例代码如下:
1
2 click
3 //span[contains(text(),'String')]
4
5
在实际使用时,把 String 部分替换为实际的 text 就可以了。
另外一种做法是不行的:
1
2 click
3 //span[@text='String']
4
5
1获取当前网页标题:String title=drivergetTitle();
2获取当前网页的URL:String url=drivergetCurrentUrl();
3获取元素的文本值,比如链接,纯文本等:String text=driverfindElement(By location)getText();
4获取元素指定属性的值:String attribute=driverfindElement(By location)getAttribute("属性"); //这里的参数可以是class、name等任意属性
5获取元素输入框内的文本值:String attribute=driverfindElement(By location)getAttribute("value");
6获取元素标签名称:String tagName=driverfindElement(By location)getTagName();
1是否显示:使用elementis_displayed()方法。
2是否存在:使用find_element_by_xxx()方法,捕获其抛出的异常, 如果存在异常的话则可以确定该元素不存在。
3是否被选中:一般判断表单元素,如radio或checkbox是否被选中,使用elementis_selected()方法( 返回true代表已被选中,返回false代表未被选中 )。
4是否有效:即是否为灰化状态,使用elementis_enabled()方法( 可用于判断button/checkbox/radio是否置灰 )。
知识点:
知识点:了解 driver对象的常用属性和方法
注意:最新版本的selenium已经取消了这种格式,取而代之的是:
你要先导入:
然后再:
知识点:掌握 driver对象定位标签元素获取标签对象的方法
代码实现,如下,获取腾讯新闻首页的新闻标签的内容。
知识点:掌握 元素对象的 *** 作方法
参考代码示例:
知识点:掌握 selenium控制标签页的切换
知识点:掌握 selenium控制frame标签的切换
知识点:掌握 利用selenium获取cookie的方法
知识点:掌握 selenium控制浏览器执行js代码的方法
知识点:掌握 手动实现页面等待
知识点:掌握 selenium开启无界面模式
知识点:了解 selenium使用**
知识点:了解 selenium替换user-agent
笔记:
01设置元素等待时间
自动化测试的时候,元素定位没有错,但是跑脚本的时候却报错了
例如,登录的时候要等登录页面加载出来才能输入用户名和密码
selenium设置元素等待时间的3种方式及区别
1sleep() --固定等待时间:强制等待,不能把握准确的等等时间,适合调试时用
2implicitly_wait() --隐式等待时间:等页面加载完成才执行下一步 *** 作,一般设置一次即可
3WebDriverWait --显示等待时间:配合untill()和not untill()方法,根据判断条件 灵活处理等待时间
要先设置一个超长时间,在这个时间内,程序根据调用频率每隔几秒查看一下,如果条件满足,则执行下一步 *** 作,若不满足且超过了等待时间则抛出异常
导包:from seleniumwebdriversupportui import WebDriverWait
使用:WebDriverWait(driver, 超时时间, 调用频率, 要忽略的异常)until(要执行的方法, 超时时返回的错误信息)
实例:
replace:
02键盘事件Keys类
制表符:send_keys(KeysTAB)
退出键:send_keys(KeysESCAPE)
F1:send_keys(KeysF1) f1~f12 以此类推
03二次定位
顾名思义,通过多个元素,定位两次
drfind_element(ByCLASS_NAME,"s_input")send_keys("python")
二次定位:
drfind_element(ByNAME,"query")find_element(ByCLASS_NAME,"s_input")send_keys("python")
04selenium鼠标悬停类-- ActionChains()
导包:from seleniumwebdrivercommonaction_chainsimport ActionChains
实例:将鼠标移动至更多设置,悬停鼠标
elem1= drfind_element(ByLINK_TEXT,"设置")
ActionChains(dr)move_to_element(elem1)perform()
05selenium警告框的处理
很多web应用经常会遇到JavaScript编写的alert 、confirm 以及prompt d窗,需要用到switch_toalert来切换d窗,并对d窗进行输入信息,关闭等处理。
switch_toalerttext --获取d窗文本信息
switch_toalertaccept() --点击d窗中确定按钮
switch_toalertdismiss() --点击d出中取消按钮
switch_toalertsendKeys("字符串") --在d窗中输入信息
实例:
06下拉菜单选择的三种方式
导包:from seleniumwebdriversupportuiimport Select
#选择下拉框的o2
elem1 = drfind_element(ByID,"s3Id")
1:根据value值定位
Select(elem1)select_by_value("o2val")
2根据index定位
Select(elem1)select_by_index(1)
3根据下拉框文本信息定位
Select(elem1)select_by_visible_text("o2")
07多窗口切换
window_handles --获取所有窗口句柄
switch_towindow(指定窗口) --切换到指定窗口
08selenium之JS *** 作浏览器滚动条位置
execute_script("windowscrollTo(0,n);")
09selenium之JS *** 作隐藏元素
隐藏元素的标识:style="display:none;"
一般我们通过将隐藏元素的属性修改成显示再定位
10 *** 作excel文件
将测试数据参数化用到
101准备参数化数据文件
102导包
打开文件,填写文档路径
运行结果:
定位到sheet的位置
读取sheet的行和列的内容
#读取表的行的方法
rows = sheet1nrows
print("行数",rows)
columns = sheet1ncols
print("列数",columns)
读取指定行的值
#读取指定行的值
rowValue1 = sheet1row_values(0)
print(rowValue1)
#读取指定列的值
colValue1 = sheet1col_values(0)
print(colValue1)
#输出所有用户名和对应的密码
for iin range(1,rows):
print("用户名:" + sheet1row_values(i)[0] +",密码:" + sheet1row_values(i)[1])
1、可以通过浏览器的调试功能,例如Firefox按F12,点网络标签,然后就可以看到网页的所有数据信息,网页通过AJAX异步加载的数据也可以得到。
2、使用抓包类的工具,如SmartSniff,经过分析也可以得到数据也可以得到数据!
以上就是关于如何选取元素全部的内容,包括:如何选取元素、selenium3+python可以更改元素的style吗、selenium获取测试对象的内容和状态等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)