2017-10-04 224 views
0

我想通過Selenium登錄到一個網站。我嘗試登錄的所有網站,我都可以做到這一點。之後把這部分代碼顯示了我一個Python 2.7的錯誤:硒找不到元素

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 350, in send_keys 
    'value': keys_to_typing(value)}) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 499, in _execute 
    return self._parent.execute(command, params) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 297, in execute 
    self.error_handler.check_response(response) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response 
    raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.ElementNotVisibleException: Message: element not visible 
    (Session info: chrome=61.0.3163.100) 
    (Driver info: chromedriver=2.32.498537 (cb2f855cbc7b82e20387eaf9a43f6b99b6105061),platform=Mac OS X 10.12.6 x86_64) 

代碼:

# coding=utf-8 
from selenium import webdriver 

driver = webdriver.Chrome('/Users/Martin/Desktop/chromedriver') 
driver.get("https://car.com") 
user= driver.find_element_by_xpath('//*[@id="onevideo_login_username"]') 
user.send_keys("email") 

檢查:

<input type="text" id="onevideo_login_username" name="adaptv_email" data-i18n-placeholder="login.username" ng-model="models.login.email" class="ng-pristine ng-valid" placeholder="Username"> 

正如我以前說過,我可以在所有網站登錄我正在嘗試的網站,但這是一個頭痛!

+5

檢查網址,似乎沒有用「 onevideo_login_username「存在。 – smit9234

+0

URL沒有任何這樣的ID – iamsankalp89

回答

0
  • 該網址是否正確?
  • 如果你有ID,然後它能夠​​更好地使用,
    嘗試:

    user=driver.find_element_by_id('onevideo_login_username'); 
    
0

,請檢查網址,我猜你的網址是不正確的。首先,我沒有找到URL像這樣的任何元素,但每個HTML我建議你定位器來查找元素

<input type="text" id="onevideo_login_username" name="adaptv_email" data-i18n-placeholder="login.username" ng-model="models.login.email" class="ng-pristine ng-valid" placeholder="Username"> 

使用ID

user=driver.find_element_by_id('onevideo_login_username'); 

使用名稱

user=driver.find_element_by_name('adaptv_email'); 

使用xpath

user= driver.find_element_by_xpath('//*[@name="adaptv_email"]') 
+0

我做到了,我沒有收到任何回覆,只有元素不可見的錯誤。與另一個圖書館?請求,urllib,機械化? –