python 自动化 selenium 入门

Selenium 创建基于浏览器的强大回归自动化套件和测试。而要控制和驱动实际的浏览器浏览器,需要下载与浏览器对应品牌和版本的 WebDriver 驱动程序。比如 chrome 和 edge 浏览器分别对应: chromedriver.exe 和 msedgedriver.exe
如果你不想手动下载,也可以安装 webdriver-manager 自动下载并管理 webdriver。为了方便,我们选择安装 webdriver-manager 工具包。
完整教程,参考官方文档 :  概述 | Selenium
 
安装依赖:
pip install selenium
pip install webdriver-manager

入门示例:

复制代码
 1 from selenium.webdriver.chrome.service import Service as ChromeService
 2 from webdriver_manager.chrome import ChromeDriverManager
 3 from selenium import webdriver
 4 
 5 service = ChromeService(ChromeDriverManager().install()) # 自动下载当前浏览器对应驱动
 6 driver = webdriver.Chrome(service=service)
 7 # 如果手动下载 webdriver 驱动
 8 # driver = webdriver.Chrome(executable_path=r'd:\path\to\webdriver\chromedriver.exe')
 9 
10 driver.get("https://www.selenium.dev/selenium/web/web-form.html") # 访问网站
复制代码

 

 完整示例:

复制代码
 1 from selenium import webdriver
 2 from selenium.webdriver.chrome.options import Options
 3 from selenium.webdriver.chrome.service import Service as ChromeService
 4 from webdriver_manager.chrome import ChromeDriverManager
 5 from selenium.webdriver.common.by import By
 6 from selenium.webdriver import Keys, ActionChains
 7 
 8 options = Options()
 9 options.add_experimental_option("detach", True)  # 脚本运行结束后保持浏览器的打开
10 options.add_experimental_option('excludeSwitches', ['enable-automation'])  # 排除的参数, 重新打开弹出窗口
11 
12 service = ChromeService(ChromeDriverManager().install())
13 driver = webdriver.Chrome(service=service, options=options)
14 driver.get("https://www.selenium.dev/selenium/web/web-form.html")
15 
16 # driver.title # 网站标题
17 # driver.current_url  # 当前 URL
18 # driver.back() # 后退
19 # driver.forward() # 前进
20 # driver.refresh() # 刷新
21 
22 driver.implicitly_wait(0.5) # 等待 0.5 秒
23 
24 text_box = driver.find_element(by=By.NAME, value="my-text") # 查找 name="my-text" 的元素
25 
26 # 标准 css 选择器规范
27 submit_button = driver.find_element(by=By.CSS_SELECTOR, value="button")
28 # driver.find_element(By.CSS_SELECTOR, "#fruits .tomatoes")
29 # driver.find_element(By.CSS_SELECTOR, '[name="q"]')
30 
31 text_box.send_keys("Selenium") # 向输入框发送内容
32 submit_button.click() # 单击按钮
33 
34 message = driver.find_element(by=By.ID, value="message")
35 message.text # innerHTML 文本内容
36 
37 # 执行连贯的动作
38 driver.get('https://selenium.dev/selenium/web/mouse_interaction.html')
39 clickable = driver.find_element(By.ID, "clickable")
40 ActionChains(driver).move_to_element(clickable).pause(1).click_and_hold().pause(1).send_keys("abc").perform()
41 
42 
43 driver.quit() # 退出
复制代码

 

posted @   心随所遇  阅读(171)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示