0

当谈到硒和网络抓取作为一个整体时,我是一个初学者,今天我试图按照他们使用命令的硒教程:

from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://twitter.com/home")
username = driver.find_element_by_xpath('//input[@name="session[username_or_email]"]')

在 twitter 登录页面的 html 中查找输入标签: 来自 twitter 登录页面的 html 片段

但是当我尝试运行代码时,它会告诉我:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: //input[@name="session[username_or_email]"]

我究竟做错了什么?

4

1 回答 1

2

尝试提供一些等待语句来查找元素。有 3 种方法可以提供等待 -

  1. 使用睡眠()

     time.sleep(20)
     username = 
     driver.find_element_by_xpath('//input[@name="session[username_or_email]"]')
    
  2. 显式等待

    wait=new WebDriverWait(driver, 20)
    username = wait.until(expected_conditions.presence_of_element_located(By.xpath( 
    "//input[@name='session[username_or_email]']")))
    
  3. 隐式等待

     driver.implicitly_wait(20)
     username = 
     driver.find_element_by_xpath('//input[@name="session[username_or_email]"]')
    
于 2021-01-27T08:11:25.157 回答