2017-10-14 1 views
0

セレンと私はいくつかのボットを作るためにドキュメントに従ってかなり新しい、 私はソーシャルメディアネットワーク(Twitter/Instagram)にログインしようとすると、ストロークを送信しません。セレンのpythonはソーシャルメディアにログインしません

コード:

#!usr/bin/env python3 
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
import time 
browser = webdriver.Firefox() 
browser.get("https://www.instagram.com/accounts/login/") 
elem = browser.find_element_by_name("username") 
elem.send_keys('Laptops' + Keys.RETURN) 
time.sleep(4) 
browser.quit() 

私が動作するように見えusing- browser.get_element_by_name /クラス/ XPathの何もでそれを試してみました。 エラーコード:

Traceback (most recent call last): 
    File "ig.py", line 50, in <module> 
    login(driver) 
    File "ig.py", line 15, in login 
    driver.find_element_by_xpath("//div/input[@name='username']").send_keys(username) 
    File "/home/lario/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 365, in find_element_by_xpath 
    return self.find_element(by=By.XPATH, value=xpath) 
    File "/home/lario/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 843, in find_element 
    'value': value})['value'] 
    File "/home/lario/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 308, in execute 
    self.error_handler.check_response(response) 
    File "/home/lario/.local/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response 
    raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: //div/input[@name='username'] 

OS = ubuntu17 ドライバ= Firefoxの/ geckodriver python3.6 selenium3.6

パスワードとユーザー名が必要ですが、それbcの私は、このコードのはずの仕事を知っているdoesntのtHATの上の行のエラーのためにsend_keysコードを実行しても

+0

暗黙の待機を使用します。これを試してみて、 'browser.get( 'https://www.instagram.com/accounts/login/'); browser.implicitly_wait(10) elem = browser.find_element_by_name( "username")send_keys( 'ラップトップ') ' – NarendraR

+0

ここにはエラーが表示されています。// div/input [@ name = 'username']'。あなたはこれを私が見ていないと言いましたか? – NarendraR

+0

クロムで正常に動作していますか? – NarendraR

答えて

0

待機状態の条件を追加してみてください。ただし、何らかのチェックが行われるまで要素が無効になっている場合は、EC.element_to_be_clickableが必要です。

from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.support.ui import WebDriverWait 
... 

usernamefield = WebDriverWait(self.driver, 10)\ 
    .until(EC.presence_of_element_located((By.NAME, 'username'))) 
usernamefield.send_keys("Laptops") 
passwordfield = WebDriverWait(... 
関連する問題