python自动化执行时,定位下拉框中值,不在当前的form中,如何定位,请指教? 5

python自动化执行时,定位下拉框中值,不在当前的form中,如何定位,请指教?1、增加页面,下拉框点击开后,没有定位到下拉框中的选项;2、下拉框中的值和增加属性页面,... python自动化执行时,定位下拉框中值,不在当前的form中,如何定位,请指教?1、增加页面,下拉框点击开后,没有定位到下拉框中的选项;2、下拉框中的值和增加属性页面,元素不在一个DIV下3、请指教如何找到下拉框中的值? 展开
 我来答
匿名用户
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()
更多追问追答
追问

这个是:非<select>标签的下拉菜单中的选项,可以用select方法吗?

我用select方法重新执行了一下,还是报错呢,是不是程序错误了,向好友求解:

selenium.common.exceptions.UnexpectedTagNameException: Message: Select only works on <select> elements, not on <input>

追答
  1. 将鼠标放在下拉框上,悬停或点击如果可以弹出下拉框,那么可以用类似下面的代码。

  2. 先定位到菜单,执行悬停或悬停点击展开下拉框,再定位下拉框里面的元素,再执行点击等其它操作。(前提是定位元素没出问题,而且没有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()

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式