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