我尝试从以下网站选择列表的第一个值(本例中为北京):https://search.jd.com/Search?keyword=%E5%AE%A0%E7%89%A9%E9%A3%9F%E5%93%81&qrst=1&wq=%E5%AE%A0%E7%89%A9%E9%A3%9F%E5%93%81&stock=1&page=5&s=121&click=1
xpath是:
//*[@id="ttbar-mycity"]/div[2]/div[2]/div/div/div[1]/a我的代码是:
browser.find_element_by_xpath("//ul[@id='ttbar-mycity']/div[2]/div[2]/div/div/div[1]/a[.= '北京']").click()但是它抛出了一个“没有这样的元素异常”。
这是html:

更新:这是目前为止的完整代码(感谢DebanjanB):
browser.get("https://global.jd.com/")
browser.find_element_by_id("key").send_keys(mysearch)
browser.find_element_by_id("search-btn").click()
wait.until(EC.title_contains(mysearch))
ActionChains(browser).move_to_element(WebDriverWait(browser, 50).until(EC.visibility_of_element_located((By.XPATH, "//span[@class='ui-areamini-text' and @title='北京']")))).perform()
WebDriverWait(browser, 30).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='dd dorpdown-layer']//div[@class='ui-areamini-content-list clearfix']/div/a"))).click()它在线路上抛出一个TimeoutException
ActionChains(browser).move_to_element(WebDriverWait(browser, 50).until(EC.visibility_of_element_located((By.XPATH, "//span[@class='ui-areamini-text' and @title='北京']")))).perform()发布于 2020-07-04 05:35:25
要单击list 北京中的第一个值,您需要:
使用文本
visibility_of_element_located()的北京 WebDriverWait北京
然后单击诱导element_to_be_clickable()的
span(‘https://search.jd.com/Search?keyword=%E5%AE%A0%E7%89%A9%E9%A3%9F%E5%93%81&qrst=1&wq=%E5%AE%A0%E7%89%A9%E9%A3%9F%E5%93%81&stock=1&page=5&s=121&click=1')class "//span@class='ui-areamini-text’和@title=‘北京’“).perform() WebDriverWait(browser,20).until(EC.element_to_be_clickable((By.XPATH,"//div@class='dd dorpdown-layer'//div@class='ui-areamini-content-list clearfix'/div/a"))).click()
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC

参考文献
您可以在Selenium “selenium.common.exceptions.NoSuchElementException” when using Chrome中找到有关NoSuchElementException的详细讨论
https://stackoverflow.com/questions/62722595
复制相似问题