11

Python 2.7 用の Selenium Webdriver を使用しています。

  1. ブラウザを起動します: browser = webdriver.Firefox().

  2. 次の URL に移動しますbrowser.get('http://www.google.com')

この時点で、「名前を付けてページを保存」コマンドをブラウザに送信するにはどうすればよいですか?

注: 関心のある Web ページのソースではありません。Firefox の実際の [名前を付けてページを保存] コマンドを使用してページを保存したいと考えています。

4

3 に答える 3

11

残念ながら、Selenium でやりたいことはできません。page_source を使用して html を取得できますが、取得できるのはそれだけです。

残念ながら、Selenium は名前を付けて保存したときに表示されるダイアログと対話できません。

次のようにしてダイアログを表示できますが、最後に AutoIT のようなものが必要になります

from selenium.webdriver.common.action_chains import ActionChains

saveas = ActionChains(driver).key_down(Keys.CONTROL)\
         .send_keys('s').key_up(Keys.CONTROL)
saveas.perform()
于 2012-06-10T15:56:17.357 に答える
5

同様の問題があり、最近解決しました:

@AutomatedTester はまともな答えを出しましたが、彼の答えは問題を完全に解決するものではありませんでした。作業を完了するには、Enter キーをもう一度押す必要があります。

したがって、Python でもう 1 回 Enter キーを押す必要があります。

次のスレッドで @NoctisSkytower の回答に従ってください。

Python はキーダウンをシミュレートします

クラスの彼の定義をコピーしてから、 @AutomatedTester の回答に以下を追加します。

SendInput(Keyboard(VK_RETURN))
time.sleep(0.2)
SendInput(Keyboard(VK_RETURN, KEYEVENTF_KEYUP))

次のリンクも参照してください。

Selenium Webドライバーは、新しいウィンドウがいつ開いたかを認識してから、その実行を再開するにはどうすればよいですか

ポップアップ ウィンドウが表示される場合があり、このスレッドで実行する必要があることが通知されます。

于 2014-12-09T02:34:44.910 に答える