10. select下拉框
- select 元素是一种表单控件,可用于在表单中接受用户输入
- 百度->设置->搜索设置,查看select属性
- select id="nr",name="NR",对应三个选项:每页显示10/20/50条
- 二次定位:先定位select框,再定位select中的选项
-
# coding:utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time driver=webdriver.Firefox() driver.get("https://www.baidu.com") time.sleep(10) #打开搜索设置 mouse=driver.find_element_by_link_text("设置") ActionChains(driver).move_to_element(mouse).perform() driver.find_element_by_link_text("搜索设置").click() time.sleep(10) #定位select下拉框 s=driver.find_element_by_id("nr") #定位select选项 s.find_element_by_xpath("//option[@value='50']").click() #保存设置 driver.find_element_by_class_name("prefpanelgo").click()
- 直接定位
-
# coding:utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time driver=webdriver.Firefox() driver.get("https://www.baidu.com") time.sleep(10) #打开搜索设置 mouse=driver.find_element_by_link_text("设置") ActionChains(driver).move_to_element(mouse).perform() driver.find_element_by_link_text("搜索设置").click() time.sleep(10) #直接定位到select选项 driver.find_element_by_xpath(".//*[@id='nr']/option[2]").click() #保存设置 driver.find_element_by_class_name("prefpanelgo").click()
-
- select模块(index)
- 导入select模块:from selenium.webdriver.support.select import Select
- 根据属性或索引定位:select_by_index(),index计数从0开始
-
# coding:utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support.select import Select import time driver=webdriver.Firefox() driver.get("https://www.baidu.com") time.sleep(10) #打开搜索设置 mouse=driver.find_element_by_link_text("设置") ActionChains(driver).move_to_element(mouse).perform() driver.find_element_by_link_text("搜索设置").click() time.sleep(10) #通过索引定位:select_by_index() s=driver.find_element_by_id("nr") Select(s).select_by_index(0) #保存设置 driver.find_element_by_class_name("prefpanelgo").click()
- select模块(value)
- select_by_value(),value计数从1开始
-
# coding:utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support.select import Select import time driver=webdriver.Firefox() driver.get("https://www.baidu.com") time.sleep(10) #打开搜索设置 mouse=driver.find_element_by_link_text("设置") ActionChains(driver).move_to_element(mouse).perform() driver.find_element_by_link_text("搜索设置").click() time.sleep(10) #通过索引定位:select_by_value(),设置为20每页 s=driver.find_element_by_id("nr") Select(s).select_by_value("20") #保存设置 driver.find_element_by_class_name("prefpanelgo").click()
- select模块(text)
- 定位“每页显示50条”:select_by_visible_text("每页显示50条")
-
# coding:utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.support.select import Select import time driver=webdriver.Firefox() driver.get("https://www.baidu.com") time.sleep(10) #打开搜索设置 mouse=driver.find_element_by_link_text("设置") ActionChains(driver).move_to_element(mouse).perform() driver.find_element_by_link_text("搜索设置").click() time.sleep(10) #通过索引定位:select_by_value(),设置为20每页 s=driver.find_element_by_id("nr") Select(s).select_by_visible_text("每页显示50条") #保存设置 driver.find_element_by_class_name("prefpanelgo").click()
- select模块其他方法
-
select_by_index()
通过索引定位 选中select下拉框中某一项 select_by_value()
通过value值定位 select_by_visible_text()
通过文本值定位 deselect_all()
取消所有选项 取消select下拉框中选中项 deselect_by_index()
取消对应index选项 deselect_by_value()
取消对应value选项 deselect_by_visible_text()
取消对应文本选项 first_selected_option()
返回第一个选中的选项 返回option信息 all_selected_options()
返回所有已选中的选项 options()
返回所有的选项
-
- 直接定位