我尝试用硒做某事,我需要发送用户名并通过,但是我收到了此错误。我在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"}
答案 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方法。