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 @ 2023-05-26 13:25  心随所遇  阅读(148)  评论(0编辑  收藏  举报