2017-04-09 5 views
0

私はウェブサイトへのログインを自動化するためにPythonとセレンを使ってプログラムを書いています。このウェブサイトは、追加の確認のためのセキュリティに関する質問をします。明らかに、私が "send_keys"を使って送る答えは質問された質問に依存するので、テキストに基づいて何が尋ねられているのか把握する必要があります。 BeautifulSoupを使ってHTMLを解析することができますが、私が見たすべての例では、ページコンテンツを読むためのURLを指定する必要があります。すでに開いているページのコンテンツを読むにはどうすればよいですか?私が使用しているコードは次のとおりです:すでにロードされているウェブページのhtmlをダウンロード

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from bs4 import BeautifulSoup 
chromedriver = 'C:\\Program Files\\Google\\chromedriver.exe' 
browser = webdriver.Chrome(chromedriver) 
browser.get('http://www.aaaa.com') 
loginElem = browser.find_element_by_id('bbbb') 
loginElem.send_keys('cccc') 
passwordElem = browser.find_element_by_id('dddd') 
passwordElem.send_keys('eeee') 
passwordElem.send_keys(Keys.RETURN) 

セキュリティに関する質問のあるページがロードされています。 私も要素で見つけようとしましたが、何らかの理由で作業がうまくいかなかったので、回避策を試しています。以下は、質問があるdivクラス全体のHTMLです。あるいは、あなたは私が正しいものを探すのを助けることができます。

<div class="answer-section"> 
<p> Please answer your challenge question so we can&nbsp;help 
verify&nbsp;your identity. 
</p> <label for="tlpvt-challenge-answer"> What is the name of your dog? 
</label> 
<input type="text" id="tlpvt-challenge-answer" class="tl-private gis- mask" 
name="challengeQuestionAnswer" value=""/> 
</div> 
+0

なぜあなたは 'BeautifulSoup'が必要なのですそれは? 'loginElem = browser.find_element_by_id( 'bbbb')'または 'selenium'の中の他のメソッドと同様に' loginElem.text'を使ってHTML要素を取得することができます(これは例であり、これはあなたが解析する必要のあるテキスト) – odradek

+0

私は上記の経路を試している理由を説明すべきいくつかの情報を追加しました –

答えて

0

あなたがwebdriverをからソースコードを取得し、それを解析することができますBeautifulSoup使用したい場合:

chromedriver = 'C:\\Program Files\\Google\\chromedriver.exe' 
browser = webdriver.Chrome(chromedriver) 
browser.get('http://www.aaaa.com') 

# call page_source attr from a webdriver instance to 
# retrieve HTML source code 
html = browser.page_source 

# parse it with BeautifulSoup 
soup = BeautifulSoup(html, 'html.parser') 
label = soup.find('label', {'for': 'tlpvt-challenge-answer'}) 
print label.get_text() 

出力:

$ What is the name of your dog? 
関連する問題