📜  以 selenium 显示 (1)

📅  最后修改于: 2023-12-03 15:36:21.882000             🧑  作者: Mango

以 Selenium 显示

Selenium 是一个流行的自动化测试工具,也可以用来模拟用户在浏览器上的操作行为。通过使用 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 是一个非常有用的工具,可用于自动化测试、爬虫编写等领域。