码迷,mamicode.com
首页 > 其他好文 > 详细

selenium iframe 定位

时间:2020-05-18 00:45:17      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:efault   driver   sleep   ini   测试基础   第一个   amp   contains   end   

 

selenium iframe 定位

发现NAME属性不能定位,不具有唯一性,有三个NAME值一样的IFRAME。

当时具体情况是:IFRAME有三个属性,NAME,SRC,CLASS。三个IFRAME除了SRC值不一样外,其它两个属性的值都一样。

所以只能通过SRC值来区分IFRAME了。

最后解决是通过:dom=document.querySelector("[src=‘.....‘]")   这个语法定位成功了

 

举个栗子:

<iframe src="myframetest.html" />

用xpath定位,传入WebElement对象:

driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@src,‘myframe‘)]"))

如:

driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@src,‘mail.qq.com‘)][1]")));
//driver.switchTo().frame(driver.findElement(By.xpath("//iframe[contains(@src,‘mail.qq.com&v=110702‘)]")));

 

 

多层iframe 


driver.switchTo().defaultContent(); driver.switchTo().frame(1); //第一个iframe,没有id/name,可以取下标来定位

driver.switchTo().frame("layui-layer-iframe1"); //第二层iframe

driver.findElement(By.name("opinion")).clear(); //操作第二层iframe下面的元素

driver.findElement(By.name("opinion")).sendKeys("test opinion!");

driver.findElement(By.xpath("//button[@type=‘submit‘]")).click();

sleep(2000); driver.switchTo().defaultContent(); //退出iframe,返回列表操作

driver.switchTo().frame(1); //进入列表那层iframe再进行操作

 

 

 

 

 

自动化测试基础篇--Selenium iframe定位问题

selenium iframe 定位

关于iframe定位碰到的问题。 

selenium iframe 定位

标签:efault   driver   sleep   ini   测试基础   第一个   amp   contains   end   

原文地址:https://www.cnblogs.com/hcxy2007107708/p/12907890.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!