前阵子升级了py3.9,一些常年陪伴的库也都做了升级,不少命令也更新了,适度更新一下记忆。
1. 打开浏览器:driver = webdriver.Chrome()
2. 访问网址:driver.get("Example Domain")
3. 获取当前网址:driver.current_url
- 获取页面标题:
driver.title
5. 获取页面源码:driver.page_source
刷新页面:
driver.refresh()
前进:
driver.forward()
后退:
driver.back()
9. 等待元素出现:WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "my-element")))
- 等待元素可点击:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "my-element")))
11. 查找元素:driver.find_element(By.ID, "my-element")
find_element_by_id(id)
:根据元素的 ID 来查找元素。find_element_by_name(name)
:根据元素的 name 属性来查找元素。find_element_by_xpath(xpath)
:根据元素的 XPath 来查找元素。find_element_by_link_text(link_text)
:根据元素的链接文本来查找元素。find_element_by_partial_link_text(partial_link_text)
:根据元素的链接文本的一部分来查找元素。find_element_by_tag_name(tag_name)
:根据元素的标签名来查找元素。find_element_by_class_name(class_name)
:根据元素的 class 属性来查找元素。find_element_by_css_selector(css_selector)
:根据元素的 CSS 选择器来查找元素。
- 查找多个元素:
driver.find_elements(By.CLASS_NAME, "my-element")
13. 单击元素:element.click()
14. 输入文本:element.send_keys("text")
15. 清除文本:element.clear()
16. 获取元素文本:element.text
获取元素属性:
element.get_attribute("attribute-name")
设置元素属性:
element.set_attribute("attribute-name", "value")
滚动到元素:
driver.execute_script("arguments[0].scrollIntoView();", element)
获取元素位置:
element.location
获取元素大小:
element.size
获取元素是否可见:
element.is_displayed()
获取元素是否启用:
element.is_enabled()
获取元素是否选中:
element.is_selected()
提交表单:
element.submit()
切换到新窗口:
driver.switch_to.window("window-name")
切换到新标签页:
driver.switch_to.window("tab-name")
28. 关闭当前窗口:driver.close()
29. 关闭所有窗口:driver.quit()
设置隐式等待:
driver.implicitly_wait(10)
设置显式等待:
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "my-element")))
执行 JavaScript 代码:
driver.execute_script("script")
获取浏览器日志:
driver.get_log("browser")
获取页面截图:
driver.save_screenshot("screenshot.png")
设置超时时间:
driver.set_page_load_timeout(10)
设置脚本超时时间:
driver.set_script_timeout(10)
忽略 SSL 证书错误:
driver.service.ignore_ssl_errors = True
设置代理:
driver.service.proxy = "http://proxy.example.com:8080"
设置用户代理:
driver.execute_cdp_cmd("Network.setUserAgentOverride", {"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"})
设置窗口大小:
driver.set_window_size(1024, 768)
最大化窗口:
driver.maximize_window()
还原窗口:
driver.minimize_window()
退出浏览器:
driver.quit()
等待元素出现:
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "my-element")))
等待元素可点击:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "my-element")))
等待元素消失:
WebDriverWait(driver, 10).until(EC.invisibility_of_element_located((By.ID, "my-element")))
等待元素可见:
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, "my-element")))
等待元素不可见:
WebDriverWait(driver, 10).until(EC.invisibility_of_element_located((By.ID, "my-element")))
等待元素被选中:
WebDriverWait(driver, 10).until(EC.element_to_be_selected((By.ID, "my-element")))
等待元素未被选中:
WebDriverWait(driver, 10).until(EC.element_to_be_selected((By.ID, "my-element")))
版权归原作者 civilpy 所有, 如有侵权,请联系我们删除。