前阵子升级了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")))`