问题由来:目前在公司实习,由于部门内部需要构建一个自动化测试框架,因此打算使用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种类型,可以调用。当然也可以尝试其他方法,可以在评论区分享出来