2016-07-08 31 views
1

Ich habe den folgenden Code und ich kann nicht herausfinden, wie man auf ein Element klickt, ohne "Element is not clickable at point" Fehlermeldung zu bekommen.Element ist nicht anklickbar Selenium webdriver

Sie können auch sehen, dass ich auf das Element vor dem Klicken bewegen. Das folgende Codebeispiel sollte vollständig funktionieren.

var webdriver = require('selenium-webdriver') 
    , By = webdriver.By 
    , until = webdriver.until; 
var driver = new webdriver.Builder().forBrowser('firefox').build(); 
driver.get('http://www.vapeworld.com/'); 
driver.manage().timeouts().implicitlyWait(10, 3000); 
for (i = 0; i < 5; i++) { 
    try { 
     driver.executeScript("try{jQuery('[name=\"" + i.toString() + "_name\"]')[1].click()}catch(Ex){};"); 
    } 
    catch (Ex) {} 
} 
driver.findElement(webdriver.By.id('search')).sendKeys('pax 2'); //to enter text 
driver.findElement(webdriver.By.className('button search-button')).click(); 
driver.findElement(webdriver.By.id('product-collection-image-2270')).then(function (element) { 
    driver.actions().mouseMove(element).perform(); 
    driver.sleep(5000); 
    driver.actions().click(element).perform();   
}); 
driver.quit(); 
+0

Was ist die vollständige Fehlermeldung? Der Schlüssel zur Bestimmung, wie Sie ihn beheben können, liegt in dieser Nachricht, da diese Nachricht Ihnen sagt, welches Element den Klick blockiert. Finde heraus, was das Element ist, einen Dialog oder ein anderes Popup ?, und gehe damit um. Sobald Sie das tun, wird Ihr wahrscheinlich wahrscheinlich gelöst werden. – JeffC

Antwort

1

Sie sollten mit .executeScript() versuchen, wie unten auszuführen klicken: -

einfach diese Zeile:

driver.actions().click(element).perform(); 

dazu:

driver.executeScript("arguments[0].click()", element) 

Hoffe, dass es funktionieren wird .. :)

0

Sie versuchen, zu click auf ‚Taste Suchtaste‘, stellen Sie sicher, dass kein Element über Läppen auf Ihrem click Element ist. Überprüfen Sie, ob Ihre Suchergebnisse für 'pax 2' das click Element überlappen oder nicht.
Wenn ja, dann click auf einem anderen Element, das nicht wegen der Suche überlappt und stellen Sie sicher, dass click keine Änderungen auf der Seite vornimmt, wie Sie es nicht wollen. (versuchen Sie, indem Sie auf ein Label-Element klicken)
Und dann versuchen Sie click auf das Element, das Sie wollen.

+0

Der Such-Klick funktioniert. Derjenige, der nicht funktioniert, ist driver.actions(). Click (element) .perform(); – Yelitza

+0

Ja, ich verstehe, ob Ihre Suchergebnisse das Element abdecken, auf das Sie klicken müssen. –

Verwandte Themen