硒无法找到元素:错误

时间:2019-07-10 02:27:22

标签: python 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"}

2 个答案:

答案 0 :(得分:0)

确保页面已成功加载,并使用WebDriverWait显示用户名字段。

需要以下导入

from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

脚本:

userName = WebDriverWait(browser,30).until(EC.presence_of_element_located((By.XPATH,"//*[@id='page-container']/div/div[1]/form/fieldset/div[1]/input")))
# now try entering the value in userName
userName.send_keys("valueGoesHere")

答案 1 :(得分:0)

这对我有用,尽管它在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,因此尝试使用索引为1的findElements方法。