selenium4模拟百度搜索

3 篇文章 0 订阅
1 篇文章 0 订阅
文章讲述了在升级Selenium到4.8.2版本后,原有的代码需要进行调整,如使用Service对象替代executable_path,修改find_element_by_id等方法,并介绍了新引入的RelativeLocators定位方式。开发者需要更新Chrome驱动至对应版本,并学习新的元素定位方法。
摘要由CSDN通过智能技术生成

好久没有使用selenium,重新安装之后发现原来的代码都不能用了,原来版本更新了。
使用pip list查看,selenium版本4.8.2。
首先更新chrome驱动 http://chromedriver.storage.googleapis.com/index.html,
chrome版本:版本 102.0.5005.115(正式版本) (64 位)。
驱动列表,选了比较接近的 102.0.5005.61版本。
下载解压缩,放在chrome安装目录下。
在这里插入图片描述
原来的执行路径不太好用了,不报错,有警告,提示“executable_path has been deprecated, please pass in a Service object”。
根据更新,换成:

#导入库
from selenium.webdriver.chrome.service import Service
# 初始化浏览器为chrome浏览器
s=Service(r'C:\Crowser\Chrome\App\chromedriver.exe')
browser = webdriver.Chrome(service=s)

原来的find_element_by_id会报错:AttributeError: ‘WebDriver’ object has no attribute ‘find_element_by_id’
改成:driver.find_element(By.ID,“kw”),需要导入库:

from selenium.webdriver.common.by import By

其他几种定位方式也做了相应改变:

# 利用ID定位
searchTag = driver.find_element(By.ID, "value")
# 利用name属性定位
searchTag = driver.find_element(By.NAME, "value")
# 利用类名定位
searchTag = driver.find_element(By.CLASS_NAME, "value")
# 利用标签名定位
searchTag = driver.find_element(By.TAG_NAME, "value")
#利用链接文本
searchTag = driver.find_element(By.LINK_TEXT, "value")
#利用部分链接文本
searchTag = driver.find_element(By.PARTIAL_LINK_TEXT, "value")
# 利用xpath定位
searchTag = driver.find_element(By.XPATH, "value")
# 利用CSS选择器定位
searchTag = driver.find_element(By.CSS_SELETOR, "value")

完整代码示例:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
s=Service(r'C:\Crowser\Chrome\App\chromedriver.exe')
#C:\Crowser\Chrome\App\为chrome安装目录
driver=webdriver.Chrome(service=s)
driver.get('http://www.baidu.com')#打开百度网页
driver.implicitly_wait(5)

driver.find_element(By.ID,"kw").send_keys('selenium4教程')
driver.find_element(By.ID,"kw").send_keys(Keys.ENTER)

selenium还增加了相对定位(Relative Locators),above、below、to_left_of、to_right_of、near。具体可参考:
定位器:
https://www.selenium.dev/zh-cn/documentation/webdriver/elements/locators/
元素定位之find_elements()、层级定位与selenium4相对定位-基础篇5:
https://micheng.blog.csdn.net/article/details/117194464

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值