Selenium基本使用(十三)测试中常见问题
2017-12-20 16:03 _天枢 阅读(495) 评论(0) 编辑 收藏 举报我们在使用selenium测试过程中,经常会遇到这样的问题:
1.frame或iframe
<iframe id='frame1' name='frame1'> <input type='btuuton' name = 'btn1' value=''/> <iframe id='frame2' name='frame2'> <input type='btuuton' name = 'btn2' value=''/> </iframe> </iframe>
frame层层切换, 定位button并单击.
driver.switch_to.frame(frame1) driver.switch_to.frame(frame2) driver.find_element_by_name('btn2').click()
切换frame后,如果还想回到外层去操作其它元素, 记得要切回去
driver.switch_to.default_content()
切换frame 四种方法:
driver.switch_to.frame(id) #通过frame id driver.switch_to.frame(name) #通过frame name driver.switch_to.frame(index) #通过frame 索引 从0开始 driver.switch_to.frame(webelement) #定位frame元素
动态frame定位,切换
处理动态的,也就是说没有id没有name或者有也是动态变化的. 这个我们一般是采用webelement定位再切换
这里就要用到xpath的内建方法contains(包含--某属性包含字符串)
iframe = driver.find_element_by_xpath("//iframe[contains(@name,'fra')]") driver.switch_to.frame(iframe)
2.获取页面中table中行数据
思路:
1>先定位到table元素
2>定位table元素下的tr元素
3>定位tr元素下的td元素
table = driver.findElement(By.id("table")) rows = table.findElements(By.tagName("tr")) for row in rows: #控制遍历所有行 cols= row.findElements(By.tagName("td")) for col in cols: #控制遍历当前迭代行下所有列 col.getText()
作 者:
天枢
出 处:
http://www.cnblogs.com/yhleng/
关于作者:专注于软件自动化测试领域。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者
直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角
【
推荐】
一下。您的鼓励是作者坚持原创和持续写作的最大动力!