here と読むと、明らかにRenderedWebElement
メソッドを持つhover
クラスがありました。ただし、これはJava(私はPythonバインディングドキュメントを利用できない)で検索しました)専用に作成され、それ以降Javaで非推奨になりました。
hover
は、 action_chains
を使用して、または WebElement
オブジェクトを使用しても実行できません。
Pythonでこれを行う方法に関するアイデアはありますか? here でしたが、RenderedWebElement
を使用しているため、あまり役に立ちません。
私は使用しています:Python 2.7、Windows Vista、Selenium 2、Python Bindings
EDIT:mouse_over
オブジェクトにはSelenium.selenium.Selenium
というメソッドがありますが、スタンドアロンサーバーは既に実行されています。
[〜#〜] edit [〜#〜]私のように誤解がある場合に備えて、回答としてマークされた返信のコメントをご覧ください!
ホバーを行うには、move_to_element
メソッドを使用する必要があります。
ここに例があります
from Selenium import webdriver
from Selenium.webdriver.common.action_chains import ActionChains
firefox = webdriver.Firefox()
firefox.get('http://foo.bar')
element_to_hover_over = firefox.find_element_by_id("baz")
hover = ActionChains(firefox).move_to_element(element_to_hover_over)
hover.perform()
@AutomatedTesterはコミュニティに素晴らしいソリューションを提供しました!
以下は私がそれを使用した方法です。
時々現在のプロセスでハングするため、phantomJSを適切に終了するためにシグナルを使用しました。
Xpathはchromeで簡単に見つけることができるので、find_element_by_xpathを使用することを好みます。
方法は次のとおりです。右クリック->検査->右クリック->コピー-> CopyXpath
from Selenium import webdriver
from Selenium.webdriver.common.action_chains import ActionChains
import signal
browser = webdriver.PhantomJS()
browser.implicitly_wait(3)
def hover(browser, xpath):
element_to_hover_over = browser.find_element_by_xpath(xpath)
hover = ActionChains(browser).move_to_element(element_to_hover_over)
hover.perform()
browser.service.process.send_signal(signal.SIGTERM) # kill the specific phantomjs child proc
browser.quit()