Googleのサインインボックスのユーザー名とパスワードのフィールドにキーを送信する際に問題が発生しました。Seleniumは、IDが「Email」と「Passwd」のWeb要素を見つけましたが、キーを送信できません。
期待した結果が得られないコードは次のとおりです。
from selenium import webdriver
#from selenium.webdriver.common.keys import Keys
import time
username = "test"
password = "ninja"
driver = webdriver.Firefox()
driver.get(u'http://www.google.com')
driver.implicitly_wait(10)
elem = driver.find_element_by_id("gb_70")
elem.click()
username = driver.find_element_by_id('Email')
username.send_keys(username)
このコードはエラーを生成します:
トレースバック(最後の最後の呼び出し):ファイル "SERPkopi.py"、行18、username.send_keys(username)ファイル "/Users/Sverdrup/virtualenv-1.6.1/Alert/lib/python2.7/site-packages/ selenium / webdriver / remote / webelement.py "、142行目、send_keys local_file = LocalFileDetector.is_local_file(* value)File" /xxxxx/xxxxxx/virtualenv-1.6.1/Alert/lib/python2.7/site-packages/ selenium / webdriver / remote / webelement.py "、253行目、is_local_file for i in range(len(val)):TypeError:タイプ'WebElement'のオブジェクトにlen()がありません
同じコードがグーグルの「q」(クエリ)フィールドに書き込むことができるので、これは奇妙です
id、name、xpathでwebElementを識別しようとしましたが、役に立ちませんでした。
理由の背景:
今日はグーグルアラートに目を向けて、会社の顧客の名前でアラートを設定したいと思っています(これは企業間取引であるため、顧客は会社そのものです)。顧客は比較的少なく、名前について多くのアラートが届くとは思いませんが、追跡できるといいですね。
グーグルアラート用のAPIがないことを見て、私はセレンを使用してプログラムで数百の顧客名を入力すると思いました。私は最初に自分のアカウントにログオンできる必要があります...
私は本当にすべてのそして与えられたどんな助けにも感謝します。
心から