- 元素定位语法
- 通过ID定位:使用
find_element_by_id方法,传入元素的ID属性值作为参数。例如,定位一个ID为username的输入框:
element = driver.find_element_by_id("username")
- 通过名称定位:使用
find_element_by_name方法,根据元素的名称属性来定位。比如定位一个名称为password的密码输入框:
element = driver.find_element_by_name("password")
- 通过XPath定位:
find_element_by_xpath方法允许使用XPath表达式来定位元素。XPath是一种用于在XML和HTML文档中定位节点的语言。例如,定位一个具有特定文本内容的按钮:
element = driver.find_element_by_xpath("//button[text()='提交']")
- 通过CSS选择器定位:使用
find_element_by_css_selector方法,通过CSS选择器规则来定位元素。例如,定位一个类名为nav - item的导航栏项目:
element = driver.find_element_by_css_selector(".nav - item")
- 操作元素语法
- 输入文本到输入框:定位到输入框元素后,使用
send_keys方法输入文本。假设已经定位到一个输入框元素input_element,输入用户名:
input_element.send_keys("张三")
- 点击元素(如按钮、链接等):使用
click方法。例如,定位到一个按钮元素button_element并点击:
button_element.click()
- 获取元素属性:使用
get_attribute方法获取元素的属性值。例如,获取一个链接元素link_element的href属性:
href_value = link_element.get_attribute("href")
- 获取元素文本内容:对于一些元素(如标签、按钮等),可以使用
text属性获取其显示的文本内容。例如,获取一个标签元素label_element的文本:
text_content = label_element.text
- 等待元素出现的语法(使用
WebDriverWait)
- 首先要从
selenium.webdriver.support.ui导入WebDriverWait,从selenium.webdriver.support导入expected_conditions并简称为EC,从selenium.webdriver.common.by导入By。 - 例如,等待一个ID为
result的元素出现,最长等待10秒:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, "result")))
- 处理下拉框语法(使用
Select类)
- 从
selenium.webdriver.support.ui导入Select类。 - 首先定位下拉框元素,然后使用
Select类包装它。例如,定位一个ID为fruitSelect的下拉框:
from selenium.webdriver.support.ui import Select
dropdown_element = driver.find_element_by_id("fruitSelect")
select = Select(dropdown_element)
- 可以通过
select_by_value(根据选项的值选择)、select_by_visible_text(根据选项的可见文本选择)或select_by_index(根据选项的索引选择)来选择下拉框中的选项。例如,根据选项的值选择:
select.select_by_value("apple")
- 处理警告框语法
- 当出现警告框时,使用
driver.switch_to.alert获取警告框对象。 - 获取警告框文本:
alert_text = alert.text。 - 接受警告框(点击“确定”按钮):
alert.accept()。 - 取消警告框(点击“取消”按钮):
alert.dismiss()。 - 对于包含输入框的提示框,还可以使用
alert.send_keys("输入的文本")来向输入框输入文本。
- 多窗口切换语法
- 获取所有窗口句柄:
window_handles = driver.window_handles。 - 切换到指定窗口:
driver.switch_to.window(window_handle),其中window_handle是要切换到的窗口的句柄。 - 获取当前窗口句柄:
current_window_handle = driver.current_window_handle。