python自动化执行时,定位下拉框中值,不在当前的form中,如何定位,请指教? 5
python自动化执行时,定位下拉框中值,不在当前的form中,如何定位,请指教?1、增加页面,下拉框点击开后,没有定位到下拉框中的选项;2、下拉框中的值和增加属性页面,...
python自动化执行时,定位下拉框中值,不在当前的form中,如何定位,请指教?1、增加页面,下拉框点击开后,没有定位到下拉框中的选项;2、下拉框中的值和增加属性页面,元素不在一个DIV下3、请指教如何找到下拉框中的值?
展开
1个回答
2019-09-19
展开全部
1. 个别情况下用到Actionchain的悬停功能,使下拉框展开,才能定位到到页面的元素。
2. 一般用到Select,有三种方式实现下拉框内容的选择,任选其一。定位元素时,要先定位到下拉菜单,而不是直接定位下拉菜单里面的选项,示例如下:
from selenium import webdriver
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
# 根据索引选择(索引要字符串格式)
Select(driver.find_element_by_id("id_name")).select_by_index("2")
# 根据value值选择
Select(driver.find_element_by_id("id_name")).select_by_value("值")
# 根据文本值选择
Select(driver.find_element_by_id("id_name")).select_by_visible_text("文本内容")
driver.quit()
2. 一般用到Select,有三种方式实现下拉框内容的选择,任选其一。定位元素时,要先定位到下拉菜单,而不是直接定位下拉菜单里面的选项,示例如下:
from selenium import webdriver
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
# 根据索引选择(索引要字符串格式)
Select(driver.find_element_by_id("id_name")).select_by_index("2")
# 根据value值选择
Select(driver.find_element_by_id("id_name")).select_by_value("值")
# 根据文本值选择
Select(driver.find_element_by_id("id_name")).select_by_visible_text("文本内容")
driver.quit()
更多追问追答
追问
追答
将鼠标放在下拉框上,悬停或点击如果可以弹出下拉框,那么可以用类似下面的代码。
先定位到菜单,执行悬停或悬停点击展开下拉框,再定位下拉框里面的元素,再执行点击等其它操作。(前提是定位元素没出问题,而且没有frame)
from selenium.webdriver.common.action_chains import ActionChains
menu = driver.find_element_by_xpath("xpath") #定位元素
actions = ActionChains(driver)
actions.move_to_element(menu) # 悬停
actions.click() # 需要点击时
actions.perform()
submenu = driver.find_element_by_xpath("xpath") #定位元素
actions.click(submenu) # 点击
actions.perform()
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询