首页 > 解决方案 > Selenium 无法定位元素:错误

问题描述

我尝试在 selenium 中做某事,我需要发送用户名并通过但我得到了这个错误。我在 pythonanywhere 上工作

我试过 time.sleep(20-60),隐式等待。

display = Display(visible=0, size=(1024, 768))
    display.start()
    browser = webdriver.Firefox()
    browser.get("https://twitter.com/login")
    time.sleep(30)
    username = browser.find_element_by_xpath("//*[@id='page-container']/div/div[1]/form/fieldset/div[1]/input")
    password = browser.find_element_by_xpath("//*[@id='page-container']/div/div[1]/form/fieldset/div[2]/input")

我的错误是:

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"xpath","selector":"//*[@id='page-container']/div/div[1]/form/fieldset/div[1]/input"}

标签: pythonselenium

解决方案


这对我有用,虽然它在 Scala 中,但选择器应该仍然是正确的。

driver.findElements(By.cssSelector("input[name='session[username_or_email]']")).get(1).sendKeys("some username")
    driver.findElements(By.name("session[password]")).get(1).sendKeys("some password")

我最初尝试过

driver.findElement(By.cssSelector("input[name='session[username_or_email]']")).sendKeys("some username")

但是失败了,元素不可交互,但注意到它的大小为 3,所以尝试了 findElements 方法,该方法使用索引为 1


推荐阅读