龙空技术网

绝招,三板斧解决无法定位多表单元素问题

原锦爸爸睡前故事 167

前言:

目前同学们对“selenium定位iframe”大约比较看重,同学们都想要剖析一些“selenium定位iframe”的相关内容。那么小编同时在网络上汇集了一些关于“selenium定位iframe””的相关内容,希望大家能喜欢,各位老铁们快快来了解一下吧!

自从开始写文章以来,有很多人的朋友来问题,其实有一个问题比较多人经常问到,为什么我的定位是对的,就是定位不到呢。

我看了一下他们的页面源码,发现问题是出在iframe框架上,没有切入这个iframe当然就定不了。

讲答思路:

第一斧:iframe 有属性名称可以定位,比如id,name 脚本实现如下:

from selenium import webdriver

#打开谷歌浏览器

driver = webdriver.Chrome()

#最大化窗口

driver.maximize_window()

#打开测试网站

driver.get("E:\\yuangbao\\bao1\\test.html")

#第一步切入iframe

driver.switch_to.frame("su1")

driver.find_element_by_id("user").send_keys("qytest")

第二斧:iframe 无属性名称可定位,利用xpath,tag_name定位

from selenium import webdriver

#打开谷歌浏览器

driver = webdriver.Chrome()

#最大化窗口

driver.maximize_window()

#打开测试网站

driver.get("E:\\yuangbao\\bao1\\test.html")

#通过标签定位iframe

tagname=driver.find_element_by_tag_name("iframe")

driver.switch_to.frame(tagname)

driver.find_element_by_id("user").send_keys("qytest")

第三斧:多个iframe 无属性名称可定位,利用find_elements定位

本例定位第二个iframe

from selenium import webdriver

#打开谷歌浏览器

driver = webdriver.Chrome()

#最大化窗口

driver.maximize_window()

#打开测试网站

driver.get("E:\\yuangbao\\bao1\\test.html")

#定位第二个iframe

tagname=driver.find_elements_by_tag_name("iframe")[1]

driver.switch_to.frame(tagname)

driver.find_element_by_id("user").send_keys("qytest")

以上几个技巧,适用大部分的场景,如果你也遇到这种的问题,希望能帮你。

标签: #selenium定位iframe