2016-05-31 5 views
1

Mit Python und webdriver-- Ich versuche, einen Selenruf für move_to_element() zu umbrechen, so dass ich es in einem Seitenobjekt aufrufen kann, um in einem Testskript verwendet zu werden.Möglich, ActionChains move_to_element() in eine Methode einzubinden?

Zum Beispiel habe ich:

def find_element(self, locatorMode, Locator): 
element = None 
if locatorMode == LocatorMode.ID: 
    element = self.driver.find_element_by_id(Locator) 
elif locatorMode == LocatorMode.NAME: 
    element = self.driver.find_element_by_name(Locator) 
elif locatorMode == LocatorMode.XPATH: 
    element = self.driver.find_element_by_xpath(Locator) 
elif locatorMode == LocatorMode.CSS_SELECTOR: 
    element = self.driver.find_element_by_css_selector(Locator) 
else: 
    raise Exception("Unsupported locator strategy.") 
return element 

def hover_over(self, locatorMode, Locator): 
    self.find_element(locatorMode, Locator).move_to_element() 

Es hält mich ein Attribut Fehler geben. Ich habe versucht, eine Variable hineinzutragen, ohne Glück. Was fehlt mir hier? Ist das mit dieser Actionchain-Aktion möglich?

Antwort

0

Auf Anraten https://stackoverflow.com/a/37576260/5471457

konnte ich diese Funktion erhalten:

def hover_over(self, waitTime, locatorMode, Locator): 
    element = self.wait_for_element_visibility(waitTime, locatorMode, Locator) 
    actions = ActionChains(self.driver) 
    actions.move_to_element(element) 
    actions.perform() 
Verwandte Themen