selenium4.0 入门案例

复制代码
from selenium import webdriver
import time
#创建webdriver对象,把驱动放置到了系统环境变量中,可不带参数创建
# driver =webdriver.Firefox()
driver = webdriver.Chrome()
#使用浏览器打开指定页面
driver.get('http://www.baidu.com')

time.sleep(5)
#回收资源,关闭浏览器
driver.quit()

定位元素:4.0和之前的有区别,需要先导入by包

复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

#创建webdriver对象,把驱动放置到了系统环境变量中,可不带参数创建
# driver =webdriver.Firefox()
driver = webdriver.Chrome()
#使用浏览器打开指定页面
driver.get('http://www.baidu.com')

#定位元素
driver.find_element(By.ID, 'kw').send_keys("书包")
driver.find_element(By.ID, 'su').click()

time.sleep(5)
#回收资源,关闭浏览器
driver.quit()

css选择器的方式

https://www.w3school.com.cn/cssref/css_selectors.asp

通过XPATH定位

用右击copy,复制xpath容易有冗余,一旦后期变化不好更改

可以使用插件

或者用F12,点击elements后,输入Ctrl+f

在选择最佳定位方式时,通常遵循以下原则:

  • 首选ID定位,因为ID是唯一的且定位速度快。
  • 如果没有ID,则考虑使用Name或CSS选择器定位。
  • XPath定位虽然功能强大,但使用时需谨慎,避免因为页面结构变化而导致定位失败。
  • 尽量避免使用Tag Name定位,因为找到的元素可能不唯一

//*[@aria-label="百度热搜"]

在代码里敲要把双引号变成单引号

复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

#创建webdriver对象,把驱动放置到了系统环境变量中,可不带参数创建
# driver =webdriver.Firefox()
driver = webdriver.Chrome()
#使用浏览器打开指定页面
driver.get('http://www.baidu.com')

#定位元素
# driver.find_element(By.ID, 'kw').send_keys("书包")
# driver.find_element(By.ID, 'su').click()

#定位链接
# driver.find_element(By.LINK_TEXT,'hao123').click()

driver.find_element(By.XPATH,"//*[@aria-label='百度热搜']").click()

time.sleep(5)
#回收资源,关闭浏览器
driver.quit()
  • 确保XPath表达式正确无误,因为错误的表达式会导致元素定位失败。
  • 使用相对而非绝对的XPath表达式,以增加代码的健壮性和可维护性。例如,避免使用基于索引的表达式(如//div[1]/p),除非绝对必要,因为页面结构的变化可能会导致索引失效。
  • 在使用文本内容进行定位时,要考虑到文本可能包含子元素、空格或换行符的情况,这些都会影响XPath表达式的准确性。
  • //input[@name='username']:这表示查找任何名为input的元素,其name属性值为username//表示在整个文档中搜索,不限于特定层级。
相关推荐
测试员周周11 小时前
【AI测试系统】第5篇:AI 编码工具抛硬币?我们用 LangGraph 做了个“确定性+AI”的测试系统(附自愈架构)
人工智能·python·功能测试·测试工具·架构·langchain·单元测试
弹简特12 小时前
【精通Postman接口测试】02-集合变量|环境变量|全局变量,批量运行原来这么简单(附图文+CLI实战)
测试工具·接口测试·postman
DevilSeagull1 天前
电脑上安装的服务会自动消失? 推荐项目: localhostSCmanager. 更好管理你的服务!
测试工具·安全·react·vite·localhost·hono·trpc
Python大数据分析@1 天前
浏览器自动化工具 Selenium,Playwright,Puppeteer 做爬虫有哪些弊病?
爬虫·selenium·自动化
弹简特2 天前
【精通Postman接口测试】01-基础理论+安装使用+项目实战+接口关联(万字图文,零基础保姆级)
测试工具·postman·接口关联
武帝为此2 天前
【Selenium 屏幕截图】
python·selenium·测试工具
武帝为此2 天前
【Selenium 执行 JavaScript】
javascript·selenium·测试工具
llilian_162 天前
晶体频率测试仪 破解晶振品控核心难题:晶体频率网络测试仪深度解析 晶体网络分析仪
网络·功能测试·单片机·嵌入式硬件·测试工具·51单片机
深念Y3 天前
从 Playwright/Selenium 到指纹浏览器:浏览器自动化技术的进阶之路
selenium·测试工具·自动化·浏览器·账号·无头浏览器·指纹浏览器
Johnstons3 天前
Wireshark ExpertInfo是什么?一文讲透异常分级、适用场景、和传统抓包阅读的区别与排查标准
网络·测试工具·wireshark·es