我试图单击图中所示的下拉列表
这是我尝试过的
select = browser.find_element_by_xpath("//div[@class='chosen-container chosen-container-single']//a[@class='chosen-single chosen-single-with-deselect chosen-default']//input[@class='chosen-search-input']")
select.click()
但是它给了我这个错误
NoSuchElementException:消息:无法找到元素: // div [@ class ='chosen-container selected-container-single'] // a [@ class ='chosen-single 选择与取消选择 selected-default'] // input [@ class ='chosen-search-input']
我尝试了Sameer提供的解决方案,但现在它给了我这个错误
ElementClickInterceptedException:消息:元素不是 可点击(228,398),因为另一个元素遮住了它
答案 0 :(得分:1)
由于下拉菜单包含唯一文本,因此可以在xpath中使用该文本来查找元素。
尝试使用此更新的xpath
您的xpath应该像:
select = browser.find_element_by_xpath("//div[@id='textfilter_scopes_chosen']")
select.click()
通过更好的方法更新答案以获取元素
由于该元素具有唯一的ID,因此您应该使用该ID,因为id
比xpath更快。
您可以使用以下ID:
select = browser.find_element_by_id("textfilter_scopes_chosen")
select.click()
答案 1 :(得分:1)
为了单击dropdown
元素,请诱导WebDriverWait
()和element_to_be_clickable
()并跟随XPATH
选项。
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//div[@class='chosen-container chosen-container-single']//a[.//span[text()='Please select a scope']]"))).click()
您需要导入以下库
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By