2

Ich benutze selen webdriver mit java und habe einen eingabetyp text, der die hälfte seines körpers unter einem schwebenden div hat. Die linke Hälfte ist also erreichbar, aber nicht die rechte Seite.selen klicken position auf firefox und chrom

Ich teste es mit Firefox und Chrom. Unter Firefox funktioniert es einwandfrei, die Textbox erhält einen Klick und der Test läuft weiter.

Aber unter chrome, bekomme ich diese Fehlermeldung Element ist nicht an Punkt (490, 327) anklickbar. Anderes Element würde den Klick erhalten: ...

Gibt es eine Möglichkeit, die Position zu ändern, an der Chrome standardmäßig versucht zu klicken. Und wenn möglich ohne alle meine Klickaktionen zu ändern und die Position für jeden manuell zu ändern.

Danke

Edit:

dieses Problem zu lösen versuchen, prüfe ich die Position des Klick auf einen Eingang. Mit Firefox bekomme ich die Position: 77,5X und 30Y. Und mit Chrom bekomme ich 264,5X und 30Y. Sie klicken beide auf eine andere Stelle auf der Eingabe ... gibt es eine Möglichkeit, dies zu ändern?

+0

Bitte poste deinen Code und wenn möglich einen Link zur Webseite. –

Antwort

0

Vielleicht funktioniert Chrome schneller als Firefox, versuchen Sie eine Wartezeit mit den erwarteten Bedingungen hinzuzufügen. so etwas wie:

WebDriverWait wait = new WebDriverWait(driver, 30);  
wait.until(ExpectedConditions.visibilityOf(driver.elementToBeClickable(By.id("yourElementId")))); 
+0

Ich habe versucht, die Wartezeit hinzuzufügen, aber nichts geändert – Etienne

1

Sie können versuchen, die move_by_offset(x,y) Methode und sehen, ob Chrom Klicks an den angegebenen Koordinaten verwendet. In Ihrem Abschnitt "Chrome-Tests" können Sie angeben, welche Koordinaten tatsächlich klicken sollen.

element = find_element_by_selector(selector) 
act = ActionChains(browser) 
act.move_to_element(elem).move_by_offset(x_off, y_off).click().perform() 
1

Wie Sie sagten, ist die rechte Seite unerreichbar; Sie können es in den Blick bringen, indem Sie den folgenden Code:

 
WebElement element = driver.findElement(locator); 
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element); 

Sie versuchen dann darauf klicken können, nachdem sichergestellt wurde, dass es anklickbar heißt angezeigt und aktiviert.

Verwandte Themen