Ausgabe
Ich lerne noch und als Antwort auf eine meiner Fragen: Hier wurde mir gesagt, dass es daran liegen könnte, dass das betreffende Element nicht in Sicht ist.
Ich habe die Dokumentation durchgesehen und SO, hier war die relevanteste Antwort: hier
Sie können die Klasse “org.openqa.selenium.interactions.Actions” verwenden, um zu einem Element zu wechseln:
WebElement element = driver.findElement(By.id("my-id"));
Actions actions = new Actions(driver);
actions.moveToElement(element);
## actions.click();
actions.perform();
Wenn ich versuche, das obige zu verwenden, um zum Element zu scrollen: Es heißt WebElement nicht definiert.
Ich denke, das liegt daran, dass ich das entsprechende Modul nicht importiert habe. Kann mir jemand sagen, was ich importieren soll?
Bearbeiten: Wie von alecxe darauf hingewiesen, war dies Java-Code.
Aber in der Zwischenzeit, nachdem ich einige Zeit versucht habe, es herauszufinden. Ich habe die Importmethode für WebElement herausgefunden:
from selenium.webdriver.remote.webelement import WebElement
Vielleicht hilft jemandem wie mir.
Das Wie ist auch eine gute Lektion, IMO:
Ging zu: Dokumentation
Die
class selenium.webdriver.remote.webelement.WebElement(parent, id_, w3c=False)
Müssen in das oben erwähnte Befehlsformular getrennt werden.
Lösung
Sie versuchen, Java-Code mit Python auszuführen. In Python/Selenium org.openqa.selenium.interactions.Actions
spiegeln sich die in der ActionChains
Klasse wider :
from selenium.webdriver.common.action_chains import ActionChains
element = driver.find_element_by_id("my-id")
actions = ActionChains(driver)
actions.move_to_element(element).perform()
Oder Sie können auch “in die Ansicht scrollen” über scrollIntoView()
:
driver.execute_script("arguments[0].scrollIntoView();", element)
Wenn Sie an den Unterschieden interessiert sind:
Beantwortet von – alecxe
Antwort geprüft von – Willingham (FixError Volunteer)