随笔1:关于元素定位只能使用driver.find_driver.find_element

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1、首先看第2点的截图driver.find_element_by_id 直接标黄报错了但还是先执行下

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
driver.maximize_window()

driver.find_element_by_id('kw').send_keys("自动化")
driver.find_element_by_name('wd').click()

2、可以发现虽然驱动打开了浏览器但是在定位元素的时候报错了提示AttributeError: 'WebDriver' object has no attribute 'find_element_by_id'

 3、要解决这个问题其实可以引入一个包

from selenium.webdriver.common.by import By

4、定位元素的格式直接可以用driver.find_element()

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
driver.maximize_window()

driver.find_element(by=By.ID,value="kw").send_keys("自动化")
driver.find_element(by=By.ID,value="su").click()

再次执行可以看到成功定位到元素并执行操作

 注如果你看by.py源码可以看到下面8种类型

 

5、遇到提示只能用find_element()格式的话可以通过这个方法去解决只需要根据自己对应需要定位的元素信息进行变更by=By."*"value="*"

当然解决办法肯定还有很多兄弟们也可以去尝试其他方法

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"

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6