我在网页上有一个 [添加字段] 按钮,当按下该按钮时,它将显示一个选择列表(下拉菜单)。
此单个选择下拉列表的xpath为:'//*[@id="adv_options[3][]'
第二个数组项为空l像'[]'
。
我有将在第一个“添加字段”中选择正确项目的代码,但是如果再次单击“ 添加字段”,它将显示另一个单选下拉菜单(具有相同的选项),第二个的xpath相同:'//*[@id="adv_options[3][]'
所以现在,如果我尝试使用该xpath从该菜单中进行选择,它将选择第一个,而不是第二个。
该网站的编码可能不正确,我如何从第二,第三或第四单选择下拉菜单选项中选择正确的项目?
更新:
以下方法可以从第一个下拉列表中选择第一个项目:
element = self.driver.find_element(By.XPATH, '//*starts-with(@id, 'adv_options[3][]')
select=Select(element)
select.select_by_value('1506')
现在第二个下拉列表具有相同的id(adv_options [3] []),我无法通过xpath查找并从中选择项目。
如果有人遇到此问题并找到了可以使用的代码,请分享。
答案 0 :(得分:0)
我希望您可以使用另一个XPath来唯一确定两个下拉框。
XPath是在页面上查找元素的路径。目前,它只是在查找ID为adv_options
的所有节点,我猜这两个下拉框都具有。如果您希望某人找到另一个XPath来唯一确定第二个框,则必须提供一些包含两个框的HTML。
但是,在硒中,您可以执行以下操作:
drop-down = driver.find_elements_by_xpath('//*[@id="adv_options[3][]')
#Returns an array of elements with this xpath
#E.g
drop_down[0] #will be the first element with that path presumably the drop down box.
drop_down[1] #should be the second element with that path