selenium iframe 定位

Posted hcxy2007107708

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium iframe 定位相关的知识,希望对你有一定的参考价值。

 

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 定位的主要内容,如果未能解决你的问题,请参考以下文章

selenium+python定位iframe元素

python+selenium定位iframe

python+selenium四:iframe查看定位切换

python+selenium四:iframe查看定位切换

selenium iframe 定位

selenium之 定位以及切换frame(iframe)