关于python3.x:python3-使用-Selenium-自动化测试或爬取数据

52次阅读

共计 1399 个字符,预计需要花费 4 分钟才能阅读完成。

第一步,先装置工具:
// 默认在 liunx 环境运行,其余环境差不多,装置形式有点区别
1. 下载 google-chrome-stable_current_x86_64.rpm 装置
google-chrome –version

2. 下载 chromedriver_linux64.zip 装置
chromedriver –version

如果这样两个装置胜利就能够下一步了。

第二步,启动模拟器
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 800))
display.start()

第三步,创立 Chrome WebDriver
driver = webdriver.Chrome()

留神,以上只在 2 步 liunx 上面才须要做的,win 环境能够间接指定浏览器的驱动器也能够执行,比方我的驱动地位
driver = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\App\chromedriver.exe")

第四步,尝试拜访 URL
driver.get(url)

第五步,减少等待时间为 10 秒, 应用显式期待来减少等待时间,确保 Selenium 有足够的工夫来查找或交互元素
wait = WebDriverWait(driver, 10)

当初就能够获取网页元素了,比方我想获取 title
title = driver.title

或者想获取其中的某个 ID
wait.until(EC.presence_of_element_located((By.ID, ID))

获取其中的元素
wait.until(EC.visibility_of_element_located((By.TAG_NAME, “h1”)))
wait.until(EC.visibility_of_element_located((By.ID, “ID”)))
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, “[class*=’Text’]”)))

要留神 presence_of_element_located 和 visibility_of_element_located 的区别
1.presence_of_element_located:
这个条件用于期待页面上的元素呈现在 DOM 构造中,但并不关怀元素是否可见或是否被暗藏。
当应用这个条件时,Selenium 会期待直到页面上的元素在 DOM 中存在,即便元素不可见或被遮挡也会满足条件。
这个条件通常用于期待元素加载实现,但不须要思考元素的可见性,例如期待一个页面加载的 spinner 隐没。
2.visibility_of_element_located:
这个条件用于期待页面上的元素在 DOM 构造中存在并且可见。
当应用这个条件时,Selenium 会期待直到元素在 DOM 中存在并且满足 CSS 款式或布局上的条件,使得它对用户可见。
这个条件通常用于期待元素加载实现并且在页面上可见,例如期待一个按钮呈现并且能够被用户点击。

如果想点击按钮能够这样操作
button = driver.find_element_by_id(“myButton”) # 替换为按钮的理论 ID
button.click()

执行其余测试操作

最初须要敞开浏览器
driver.quit()

正文完
 0