- 元素定位语法
- 通过ID定位:使用
find_element_by_id
方法,传入元素的ID属性值作为参数。例如,定位一个ID为username
的输入框:
- 通过ID定位:使用
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
。
- 获取所有窗口句柄: