6

セレンウェブドライバーを使用して特定の画像をディレクトリに保存しようとしています。img要素を右クリックして[名前を付けて画像を保存...]を選択することで、これを実行しようとしていました。次のコードでコンテキストメニューを開くことができますが、正しいオプションを選択できません。

browser = WebDriver(executable_path=CHROMEDRIVER_PATH)
browser.get(URL)
img = browser.find_element_by_tag_name('img')
ActionChains(browser).context_click(img).perform()

私も試しました:

ActionChains(browser).context_click(img).send_keys(Keys.ARROW_DOWN).send_keys(Keys.ENTER).perform()                 

ショートカットを使用する(「v」は「名前を付けて画像を保存...」を選択しているようです)

ActionChains(browser).context_click(img).send_keys('v').perform()

画像はクリックするたびにランダムに再読み込みされるキャプチャ画像であるため、直接URLはありません。私がそれを処理できるようにするために私が見つけた唯一の方法は、最初にそれをディスクに保存することです(「名前を付けて画像を保存...」を使用)。ページ全体を保存しても、この特定の画像は保存されないため、同様に機能しません。

何か案は?

4

3 に答える 3

4

求めているのがキャプチャの場合は、スクリーンショットを撮ったほうがよいでしょう。

driver.save_screenshot('screenshot.png')
于 2012-09-13T00:14:00.560 に答える
1

私は同様の問題を抱えていましたが、今、名前を付けて保存を使用して画像を保存するためのショートカットを取得しました---

Step-1-right click on an image you wish to save
Step-2- press v. 
Step-3-Enter to the directory window to save 

私は Java プログラマーなので、それに応じてコードを貼り付けることができませんでした (質問は Python に求められます)。

于 2014-10-27T16:02:18.760 に答える
0

kreativitea が示唆しているように、CAPTCHA は、スクリプトが実行しようとしていることを防ぐように設計されているため、スクリーンショットが適しています。CAPTCHA は、セッションの再利用を防ぐためのものです。セッションの再利用について説明しているページです。

于 2012-09-13T01:38:19.733 に答える