共计 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()