使用selenium webdriver登录网站时出错

时间:2017-12-21 12:47:20

标签: python google-chrome selenium selenium-webdriver

我知道同样的问题有很多问题,但没有一个问题对我有帮助。 这是我的剧本。我正在尝试登录willhaben网站。我来自奥地利,这就是我使用willhaben.at的原因 Python版本3.5.4 Selenium版本3.8.0 PhantomJS 2.1版

#need some of the libraries for later code
from bs4 import BeautifulSoup as soup
import requests
import sys
import re
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

input("If ready press 'enter'")

loginurl = 'https://www.willhaben.at/iad/?islogout=true&logoff.y=10'

chrome_options = Options()
chrome_options.add_argument('disable-infobars')
driver = webdriver.Chrome(executable_path="C:\\Users\\laure\\Downloads\\chromedriver_win32\\chromedriver.exe", chrome_options=chrome_options, service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any'])


USERNAME = 'notgonnagiveit :)'
PASSWORD = 'notgonnagiveit'

driver.get(loginurl)

element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.XPATH, '//*[@id="username"]'))
    )

username = driver.find_element_by_xpath('//*[@id="username"]')
password = driver.find_element_by_xpath('//*[@id="password"]')

password.send_keys(PASSWORD)
username.send_keys(USERNAME)

driver.quit()

错误:

  File "D:\OneDrive\Dokumente\Willhaben\Willhaben.py", line 73, in <module>
    password.send_keys(PASSWORD)
  File "C:\Users\laure\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\webelement.py", line 352, in send_keys
    'value': keys_to_typing(value)})
  File "C:\Users\laure\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\webelement.py", line 501, in _execute
    return self._parent.execute(command, params)
  File "C:\Users\laure\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 311, in execute
    self.error_handler.check_response(response)
  File "C:\Users\laure\AppData\Local\Programs\Python\Python35\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 237, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotVisibleException: Message: element not visible
  (Session info: chrome=63.0.3239.84)
  (Driver info: chromedriver=2.34.522940 (1a76f96f66e3ca7b8e57d503b4dd3bccfba87af1),platform=Windows NT 10.0.16299 x86_64)

1 个答案:

答案 0 :(得分:2)

尝试使用:

username = driver.find_element_by_xpath("//input[@id='username']")
password = driver.find_element_by_xpath("//input[@id='password']")