Selenium 是一个自动化测试工具,可以模拟用户在浏览器中的操作。下面是一些常用的 Selenium 语法:
创建一个 WebDriver 对象:
from selenium import webdriver driver = webdriver.Firefox()
导航到一个 URL:
driver.get('http://example.com')
查找元素
elem = driver.find_element_by_name('username')
输入文本:
elem.send_keys('my_username')
点击元素:
elem.click()
获取元素属性:
elem.get_attribute('value')
等待元素出现:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC
elem = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.NAME, 'username')) )
这些是 Selenium 的基本语法,当然还有很多其他的 API 和功能,例如处理浏览器窗口、切换到 iframe 等等
Selenium 查找元素的方法有以下几种:
Selenium 查找元素的方法有以下几种:
find_element_by_id
:根据元素 ID 查找元素;
elem = driver.find_element_by_id('element-id')
find_element_by_name
:根据元素 name 属性查找元素;
elem = driver.find_element_by_name('element-name')
find_element_by_xpath
:使用 XPath 表达式查找元素;
elem = driver.find_element_by_xpath('//div[@class="example"]')
find_element_by_link_text
:根据链接文本查找链接元素;
elem = driver.find_element_by_link_text('click here')
find_element_by_partial_link_text
:根据链接文本的部分内容查找链接元素;
elem = driver.find_element_by_partial_link_text('here')
find_element_by_tag_name
:根据标签名称查找元素;
elem = driver.find_element_by_tag_name('h1')
find_element_by_class_name
:根据 CSS 类名查找元素;
elem = driver.find_element_by_class_name('example')
find_element_by_css_selector
:使用 CSS 选择器查找元素。
elem = driver.find_element_by_css_selector('.example')
您可以使用Selenium中的XPath来查找多个包含 span
元素的元素,并在其中查找内容为 aa
的 span
元素。以下是一个示例XPath表达式:
elements = driver.find_elements_by_xpath("//span/span[text()='aa']")
当然,还有对应的复数形式 find_elements_by_xxx
方法来查找多个元素。
以上示例中的 driver
指的是 WebDriver 对象,需要先创建。而每个示例中的字符串参数则代表了需要查找的元素特征,可以根据自己需要调整。
除了以上方法,如果你需要根据文本内容查找元素,可以结合 XPath 或者 CSS 选择器来实现。例如,使用 XPath 表达式 //a[text()='Click Here']
可以查找所有文本为 “Click Here” 的链接元素。类似的,在 CSS 选择器中也可以使用 :contains
伪类来查找含有特定文本内容的元素,例如 a:contains('Click Here')
。