私はWebサーバーをテストするためにPythonでseleniumを使用しています。私が必要とするのは、入力テキストにテキストを入力し、ボタンをクリックしてサーバーにメッセージを送信し、新しいWebページを開くことです。ここで
selenium:ボタンをクリックした後にページソースコードを取得する方法
は私のコードは次のとおりです。
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("http://www.example.com")
txt = driver.find_element_by_id('input-text')
txt.clear()
txt.send_keys('some messages')
btn = driver.find_element_by_id('input-search')
btn.click()
# How to print the source code of the new page here?
# I think it should be as below but I don't know how to do it:
# driver.get("new link") <---- How to get the new link?
# print(driver.page_source.encode('utf-8'))
私は上記のPythonコードを実行すると、すべてが正常に動作します:
www.example.com is opened.
Thesome messages
are filled in the input-text.
The button input-search is clicked.
The new web page is opened.
今、私は新しいのページのソースコードを印刷する必要がありますウェブページはボタンをクリックして開きますが、これを行う方法はわかりません。
print(driver.page_source.encode('utf-8'))
新しいウェブページではなく、www.example.com
のソースコードを私に提供します。
「IndexError:リストインデックスが範囲外です。」というエラーが表示されました。申し訳ありませんが、私はあなたを誤解します。クリックのアクションは別の新しいページを開くのではなく、古いページを新しいページに置き換えます。 – Yves
その場合、あなたのコードは私には良いようです。新しいページが読み込まれるまで待つだけかもしれません。 – VMRuiz
ohh ...あなたはそうです:Dしかし、私は 'switch_to_window'が他の人にとっては大いに役立つと思います。だから私はあなたの答えを受け入れる。あなたが望むなら、あなたの答えを編集することができます。 – Yves