📅  最后修改于: 2023-12-03 15:36:21.882000             🧑  作者: Mango
Selenium 是一个流行的自动化测试工具,也可以用来模拟用户在浏览器上的操作行为。通过使用 Selenium,开发者可以编写代码来打开浏览器,并自动访问和操作网页。
Selenium 已经成为 Python 的一个标准库。可以通过在 Python3 的环境中运行以下命令安装:
pip3 install selenium
Selenium 可以通过多种方式查找网页中的元素,如 id、name、class name、tag name 等。下面是一些示例代码:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
# 通过 id 查找元素
element = driver.find_element_by_id("kw")
element.send_keys("selenium")
# 通过 name 查找元素
element = driver.find_element_by_name("wd")
element.send_keys("selenium")
# 通过 class name 查找元素
element = driver.find_element_by_class_name("s_ipt")
element.send_keys("selenium")
# 通过 tag name 查找元素
element = driver.find_element_by_tag_name("input")
element.send_keys("selenium")
通过查找元素,可以对元素进行操作。Selenium 支持多种操作类型,例如点击、文本输入、获取元素文本等,下面是一些示例代码:
# 点击元素
element = driver.find_element_by_id("su")
element.click()
# 获取元素文本
element = driver.find_element_by_id("s-bottom-layer-right")
print(element.text)
# 获取元素属性
element = driver.find_element_by_id("su")
print(element.get_attribute("value"))
# 清空输入框内容
element = driver.find_element_by_id("kw")
element.clear()
# 使用键盘操作
from selenium.webdriver.common.keys import Keys
element = driver.find_element_by_id("kw")
element.send_keys("selenium" + Keys.RETURN)
Selenium 可以等待元素的出现、消失、可见等状态,以及等待执行 JavaScript 脚本。下面是一些示例代码:
# 等待元素出现
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "su"))
)
# 等待元素可见
element = WebDriverWait(driver, 10).until(
EC.visibility_of_element_located((By.ID, "su"))
)
# 等待元素消失
element = WebDriverWait(driver, 10).until_not(
EC.presence_of_element_located((By.ID, "su"))
)
# 等待执行 JavaScript 脚本
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
script = "return jQuery.active == 0;"
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "body")),
message="JavaScript code didn't execute within 10 seconds"
)
result = driver.execute_script(script)
使用 Selenium 执行过程中,需要进行调试,可以使用浏览器的开发者工具工具打印日志,也可以输出 Selenium 的日志。下面是一些示例代码:
# 输出日志
from selenium.webdriver.remote.remote_connection import LOGGER
LOGGER.setLevel(logging.WARNING)
# 打开开发者工具
from selenium.webdriver.common.keys import Keys
element = driver.find_element_by_css_selector("body")
element.send_keys(Keys.F12)
通过本文的介绍,您应该有了良好的了解 Selenium 的基本概念、操作方式和调试方法。对于 Python 开发者,Selenium 是一个非常有用的工具,可用于自动化测试、爬虫编写等领域。