it-swarm.com.de

So führen Sie einen Mouseover in Python Webdriver durch 

Es scheint, dass dies der Weg ist, Schwebeflug/Mouseover im Webtreiber auszuführen, zumindest in der Java-API:

Actions action = new Actions(driver);
action.moveToElement(element).build().perform();
action.moveByOffset(1, 1).build().perform();

Ist dies in der Python-API möglich? Die Web-Treiber-API-Dokumente für Python scheinen nichts dergleichen zu erwähnen . http://Selenium.googlecode.com/svn/trunk/docs/api/ py/index.html

Wie wird Hover/Mouseover in Python-Webtreibern ausgeführt?

25
Purrell
from Selenium.webdriver.common.action_chains import ActionChains


def hover(self):
    wd = webdriver_connection.connection
    element = wd.find_element_by_link_text(self.locator)
    hov = ActionChains(wd).move_to_element(element)
    hov.perform()
35
user1411110

Ich denke, Sie fragen nach Szenarien, in denen wir auf den Eintrag eines Dropdown-Listenmenüs klicken müssen. Wir können es mit Selenium in Python automatisieren.

Um diese Aktion manuell auszuführen, müssen Sie zunächst das Dropdown-Listenmenü öffnen, indem Sie die Maus über das übergeordnete Menü halten. Klicken Sie dann im Dropdown-Menü auf das gewünschte untergeordnete Menü.

Wenn Sie die ActionChains-Klasse in Selenium WebDriver verwenden, können Sie diesen Schritt auf dieselbe Weise wie manuell ausführen. Die Methode wird unten beschrieben - 

Schritt 1: Import des Web-Treibermoduls und der ActionChains-Klasse

from Selenium import webdriver
from Selenium.webdriver.common.action_chains import ActionChains

Schritt 2: Öffnen Sie den Firefox-Browser und laden Sie die URL.

site_url = 'Your URL'
driver = webdriver.Firefox()
driver.get(site_url)

Schritt 3: ActionChains-Objekt durch Übergeben des Treiberobjekts erstellen

action = ActionChains(driver);

Schritt 4: Suchen Sie das Menüobjekt der ersten Ebene auf der Seite, und bewegen Sie den Cursor mit der Methode "move_to_element ()" . Machen Sie dasselbe für alle Objekte.

firstLevelMenu = driver.find_element_by_id("first_level_menu_id_in_your_web_page")
action.move_to_element(firstLevelMenu).perform()
secondLevelMenu = driver.find_element_by_id("second_level_menu_id_in_your_web_page")
action.move_to_element(secondLevelMenu).perform()

Schritt 5: Klicken Sie mit der Methode click () auf den gewünschten Menüpunkt.

secondLevelMenu.click()

Der letzte Codeblock sieht folgendermaßen aus:

from Selenium import webdriver
from Selenium.webdriver.common.action_chains import ActionChains

site_url = 'Your URL'
driver = webdriver.Firefox()
driver.get(site_url)

action = ActionChains(driver);

firstLevelMenu = driver.find_element_by_id("first_level_menu_id_in_your_web_page")
action.move_to_element(firstLevelMenu).perform()
secondLevelMenu = driver.find_element_by_id("second_level_menu_id_in_your_web_page")
action.move_to_element(secondLevelMenu).perform()

secondLevelMenu.click()

Sie können driver.find_element_by_id() entsprechend Ihrer Arbeit durch jede andere in Selenium verfügbare find_elemnt-Methode ersetzen. Hoffe, es wird für Sie hilfreich sein.

0
Tanmoy Datta