【问题标题】:Unable to locate id python selenium无法找到 id python selenium
【发布时间】:2019-09-02 19:47:58
【问题描述】:

我在 python 中使用 selinium 将用户名自动输入到网络浏览器。但它表明它无法找到id。我试过必应网站。它工作得很好。但在这里,它失败了。 这是网站链接: Website

代码如下:

from selenium import webdriver

driver = webdriver.Firefox(executable_path='/home/paulsteven/selinium_geok_driver/geckodriver')
print("Firefox Browser Invoked")
#driver.get('https://www.bing.com/')
#inputElement = driver.find_element_by_id("sb_form_q")
driver.get('https://chat.smackcoders.com/login')
inputElement = driver.find_element_by_id("loginId")
inputElement.send_keys('smackalpha')
driver.quit()

我得到的错误: Firefox 浏览器调用

Traceback (most recent call last):
  File "sel_auto.py", line 8, in <module>
    inputElement = driver.find_element_by_id("loginId")
  File "/home/paulsteven/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 360, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "/home/paulsteven/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element
    'value': value})['value']
  File "/home/paulsteven/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/paulsteven/.local/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="loginId"]

【问题讨论】:

    标签: python python-3.x selenium firefox web-scraping


    【解决方案1】:

    您需要使用等待条件才能出现元素

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    url = 'https://chat.smackcoders.com/login'
    driver = webdriver.Chrome()
    driver.get(url)
    inputElement = WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID, "loginId")))
    inputElement.send_keys('smackalpha')
    

    【讨论】:

      猜你喜欢
      • 2021-10-18
      • 2016-07-13
      • 2022-07-28
      • 2021-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-30
      相关资源
      最近更新 更多