1. Selenium定位网页元素的方法:
Selenium定位网页元素主要有以下几种方法:
- 按ID查找元素:driver.find_element_by_id(id)
- 按名称查找元素:driver.find_element_by_name(name)
- 按标签名称查找元素:driver.find_element_by_tag_name(tagname)
- 按类名查找元素:driver.find_element_by_class_name(classname)
- 按CSS选择器查找元素:driver.find_element_by_css_selector(selector)
- 按XPath查找元素:driver.find_element_by_xpath(xpath)
2. Selenium关于如何进行鼠标、键盘操作:
使用Selenium进行鼠标和键盘操作,可以通过ActionChains类来实现。例如:
- 鼠标悬停:使用move_to_element()方法将鼠标移动到目标元素上,然后使用perform()方法执行操作。
- 鼠标单击:使用click()方法单击目标元素,并使用perform()方法执行操作。
- 模拟键盘输入:使用send_keys()方法输入文本,并使用perform()方法执行操作。
例如:
from selenium.webdriver.common.action_chains import ActionChains
element = driver.find_element_by_xpath("//a[contains(text(),'登录')]")
# 鼠标悬停
ActionChains(driver).move_to_element(element).perform()
# 鼠标单击
ActionChains(driver).click(element).perform()
# 模拟键盘输入
user_name = driver.find_element_by_id("user_name")
user_name.send_keys("test")
password = driver.find_element_by_id("password")
password.send_keys("123456")
3. 隐式等待和显示等待的区别以及实际运用场景:
- 隐式等待:使用implicitly_wait()方法设置一个全局等待时间,等待时间内Selenium会每隔一段时间检查一次页面元素是否加载完成,如果超过等待时间还未完成则抛出异常。
- 显示等待:使用WebDriverWait类和expected_conditions类结合使用,设置等待条件和等待时间,等待时间内Selenium会每隔一段时间检查一次等待条件是否满足,如果超过等待时间还未满足则抛出异常。
实际运用场景如下:
- 隐式等待适合用于多个测试用例之间的等待,可以统一设置等待时间,不需要在每个测试用例中单独设置等待时间。
- 显示等待适合用于特定的测试场景,例如等待某个元素在一定时间内出现,或者等待某个元素在一定时间内可点击等。
例子代码如下:
# 隐式等待
driver.implicitly_wait(10) # 等待10秒
# 显示等待
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, "some_element_id")))