📜  长按 selenium python (1)

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

长按 Selenium Python

Selenium 是一个自动化测试工具,可用于验证 Web 应用程序的功能及使用。Python 是一种流行的编程语言,其中包括用于自动化 Selenium 的库。

安装 Selenium Python

在 Python 项目中使用 Selenium 需要先安装 selenium 库。

pip install selenium
Chrome 驱动

Selenium 通过驱动程序来控制浏览器。为了在 Python 中使用 Selenium ,我们需要使用 ChromeDriver。(如果你使用的不是 Chrome 浏览器,你需要下载你使用浏览器的驱动程序。)

from selenium import webdriver

driver = webdriver.Chrome()
寻找元素

Selenium 的一个重要功能是可以找到网页中的元素。

# 通过 ID
element = driver.find_element_by_id("element_id")

# 通过 Name
element = driver.find_element_by_name("element_name")

# 通过 Class Name
element = driver.find_element_by_class_name("element_class")

# 通过标签名称
element = driver.find_element_by_tag_name("element_tag")

# 通过 CSS Selector
element = driver.find_element_by_css_selector("#element_id")

# 通过 XPath
element = driver.find_element_by_xpath("//div[@id='element_id']")
操作元素

当你找到一个元素,你可以执行许多操作:

# 点击元素
element.click()

# 填写输入框
element.send_keys("input_text")

# 获取元素文本
text = element.text

# 获取元素属性
attribute = element.get_attribute("attribute_name")

# 获取元素位置、大小、可见性
location = element.location
size = element.size
is_displayed = element.is_displayed()
切换窗口与框架

当你处理多个窗口或框架时,你需要切换它们。

# 切换到新窗口
driver.switch_to.window(driver.window_handles[-1])

# 切换回原来窗口
driver.switch_to.window(driver.window_handles[0])

# 切换到新的 iframe
frame = driver.find_element_by_tag_name("iframe")
driver.switch_to.frame(frame)

# 切换回父级 frame
driver.switch_to.parent_frame()

# 切换回默认 content
driver.switch_to.default_content()
执行 JavaScript

Selenium 允许我们执行 JavaScript。

# 执行 JavaScript
driver.execute_script("alert('Hello, world!');")
测试

你可以使用内置的 Python unittest 模块来编写和运行测试。

import unittest
from selenium import webdriver

class MyTestCase(unittest.TestCase):

    def setUp(self):
        self.driver = webdriver.Chrome()

    def test_search_for_google(self):
        self.driver.get("https://www.google.com/")
        self.assertIn("Google", self.driver.title)

    def tearDown(self):
        self.driver.quit()

if __name__ == '__main__':
    unittest.main()

以上是一些 Selenium Python 的基础操作,希望能对你有所帮助。