测试记录1:driver.find_element_by_tag_name(‘iframe‘)解决办法

 问题由来:目前在公司实习,由于部门内部需要构建一个自动化测试框架,因此打算使用python搭建一个框架。

 1、首先是如图1 所示driver.find_element_by_tag_name('iframe')标黄报错。

 2、就算正式执行,正常打开了浏览器,但在定位元素的时候报错,提示:AttributeError: 'WebDriver' object has no attribute 'find_element_by_id'  这个问题

 本人selenium版本为4.10.0。根据网上提示,安装之前版本,而后安装旧版本

####新版本报错,安装selenium==3.141.0

虽然没有标黄显示,但此时无法运行,报错如下:

显示路径问题,原因是旧版本的selenium需要读取路径,无法解决

实际上新版本,可以引用一个包就能解决

from selenium.webdriver.common.by import By

将之前 find_element_by_tag_name这种格式的代码,改写一下就ok,代码如下:

import time
from selenium import webdriver
from Utils.fin_ele import find_element
from selenium.webdriver.common.by import By
#####WebUI自动化测试  PO模式
driver = webdriver.Chrome()
driver.get('https://mail.163.com/')
i_frame = 	driver.find_element(by=By.TAG_NAME, value='iframe')
driver.switch_to.frame(i_frame)
find_element(driver,'name','email').send_keys('my_username')
find_element(driver,'name','password').send_keys('my_password')
find_element(driver,'id','dologin').click()
time.sleep(10)

贴一下By的代码

 ID = "id"
 XPATH = "xpath"
 LINK_TEXT = "link text"
 PARTIAL_LINK_TEXT = "partial link text"
 NAME = "name"
 TAG_NAME = "tag name"
 CLASS_NAME = "class name"
 CSS_SELECTOR = "css selector"

总共有这8种类型,可以调用。当然也可以尝试其他方法,可以在评论区分享出来

猜你喜欢

转载自blog.csdn.net/weixin_55749226/article/details/131174246