2

J'utilise le pilote web selenium avec java et j'ai un type de texte d'entrée qui a la moitié de son corps sous une div flottante. Donc, la moitié gauche est accessible mais pas le côté droit.position de clic de sélénium sur firefox et chrome

Je le teste avec firefox et chrome. Sous firefox cela fonctionne parfaitement, la zone de texte reçoit un clic et le test se poursuit.

Mais sous chrome, j'obtiens ce message d'erreur L'élément n'est pas cliquable au point (490, 327). Autre élément recevrait le clic: ...

Y at-il un moyen de changer la position où chrome essayer de cliquer par défaut. Et si possible sans avoir à changer tous mes clics sur les actions et changer manuellement la position de chacun.

Merci

Edit:

Essayer de résoudre ce problème, je vérifie la position du clic sur une entrée. Avec firefox, j'obtiens la position: 77.5X et 30Y. Et avec le chrome, j'obtiens 264.5X et 30Y. Ils cliquent tous les deux sur un point différent de l'entrée ... y a-t-il un moyen de changer cela?

+0

Veuillez poster votre code et si possible, un lien vers la page Web. –

Répondre

0

Peut-être que chrome fonctionne plus vite que Firefox, essayez d'ajouter une attente avec les conditions prévues. quelque chose comme:

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

J'ai essayé d'ajouter l'attente, mais je n'ai rien changé – Etienne

1

Vous pouvez essayer d'utiliser la méthode move_by_offset(x,y) et voir si clics chrome aux coordonnées indiquées. Sous votre section de tests de chrome, vous pouvez spécifier les coordonnées à cliquer.

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

Comme vous l'avez dit, le côté droit est inaccessible; vous pouvez le mettre en vue en utilisant le code suivant:

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

Vous pouvez essayer de cliquer dessus puis après s'être assuré qu'il est cliquable dire affiché et activé.