selenium+python操作下拉框
操作页面下拉框,一般来说分为两种情况,一种是标准的select标签下拉框;另一种是非select类下拉框,比如ul-li标签下拉框。针对select标签的下拉框,selenium提供了一个select类;针对非select标签实现的下拉框,可以通过模拟鼠标点击的方式实现操作。
1、select标签下拉框
如下图所示,下拉框为select标签,此时可以使用select类提供的三种方法定位到下拉框中的元素。
python实现具体参考代码如下:
import time from selenium import webdriver from selenium.webdriver.support.select import Select # 实例化浏览器,访问目标网页,窗口最大化 driver = webdriver.Chrome() driver.get("file:///C:/User/Desktop/%E4%B8%8B%E6%8B%89%E6%A1%86%E7%BB%83%E4%B9%A0.html") driver.maximize_window() time.sleep(1) # 定位下拉框,实例化select方法 ele = driver.find_element_by_id("poet") select_ele = Select(ele) # 方法一:通过索引选择下拉元素 select_ele.select_by_index(0) time.sleep(1) # 方法二:通过下拉元素的value选择下拉元素 select_ele.select_by_value("03") time.sleep(1) # 方法三:通过下拉元素的文本内容选择下拉元素 select_ele.select_by_visible_text("白居易") time.sleep(1) # 退出 driver.quit()
2、非select标签下拉框
针对非select标签的下拉框,按照常规手工操作的步骤,一步一步找到元素,点击操作。
python实现具体参考代码如下:
import time from selenium.webdriver import ActionChains from selenium import webdriver # 实例化浏览器,访问目标网页,窗口最大化 driver = webdriver.Chrome() driver.get("https://www.eteams.cn") driver.maximize_window() driver.implicitly_wait(5) # 登录 driver.find_element_by_id("username").send_keys("12345YH@163.com") driver.find_element_by_id("password").send_keys("123456") driver.find_element_by_xpath("//button[text()='登 录']").click() # 进入任务页面 driver.find_element_by_xpath("//a[@type='button']").click() driver.find_element_by_xpath("//li/a/span[text()='任务']").click() time.sleep(2) # 展开下拉框,直接点击选项 action = ActionChains(driver) action.move_to_element(driver.find_element_by_xpath("//a[text()='视图']")).perform() driver.find_element_by_xpath("//li[@data-useractionid='task_004000600_0005302']").click() time.sleep(2) # 退出 driver.quit()
div 标签

from selenium.webdriver import ActionChains
wait.until(ES.presence_of_element_located((By.XPATH,'//*[@id="basic_deviceTypeClassDict"]'))).click() # 设备大类
action = ActionChains(driver)
action.move_to_element(driver.find_element(By.XPATH,'//*[@id="basic_deviceTypeClassDict"]')).perform()
sleep(1)
driver.find_element(By.XPATH,'//*[@title="电气"]').click() # 电气

浙公网安备 33010602011771号