2017-08-28 3 views
-1

Ich habe Schwierigkeiten, einen Knopf von Selenium zu drücken.Ich kann nicht auf eine Schaltfläche in Selen klicken

Hier ist das DOM: http://pasteboard.co/GHIjMd6.png

ich den Knopf WebElement auf diese Weise deklariert haben mit XPath (eine gültige XPath, die ein Knoten als pro Firepath zurückgibt):

WebElement send_this_msg_btn = driver.findElement(By.xpath("//*[@class='mp-button-content'][.='Send This Message']")); 

Ich habe versucht, Sie auf den Button besagten Knopf mit send_this_msg_btn Xpath in den unten erwähnten Wegen, aber keiner von ihnen funktioniert für mich.

click() der WebDriver Methode: send_this_msg_btn.click()

JavaScriptExecutor:

JavaScriptExecutor jse = (JavaScriptExecutor)driver; 
jse.executeScript("arguments[0].click();", send_this_msg_btn); 

Aktionen Klasse:

Actions actions = new Actions(driver); 
actions.moveToElement(send_this_msg_btn); 
actions.click(); 
actions.build().perform(); 

Ich habe auch überprüft, ob die Taste innerhalb eines Rahmens/iframe ist, aber das ist nicht der Fall entweder.

+0

Was ist der Fehler, den Sie bekommen? – Kapil

+0

@Kapil Bitte überprüfen Sie diesen Link: https://pasteboard.co/GHIjMd6.png –

+0

Ich bekomme NoSuchElementException in allen Fällen. –

Antwort

0

Ändern der XPath .//mp-button[@class='mp-button-primary submit_button'] das Problem gelöst, aber ich bin nicht sicher, ob dies die akzeptierte Antwort sein sollte, da ich nicht sicher bin, ob es sich um eine fragile XPath ist. Irgendwelche Vorschläge sind willkommen!

-1

Versuchen Sie, auf die Eltern-Taste

xpath = "//*[@class='mp-button-content'][.='Send This Message']/.." 

oder es ist Eltern

xpath = "//*[@class='mp-button-content'][.='Send This Message']/../.." 

und verwenden Sie die explizite Wartezeit zu klicken, bis Element anklickbar ist.

WebDriverWait wait = new WebDriverWait(driver, 30); 
WebElement elem = wait.until(ExpectedConditions.elementToBeClickable(By.xpath(xpath))); 
elem.click(); 
+0

Keine von diesen funktioniert. Ich bekomme 'NoSuchElementException' in beiden Fällen. –

+0

dann müssen Sie explizit warten mit beiden Xpath, die ich vorgeschlagen habe. Aktualisieren Sie auch Ihre Frage mit Ausnahme/Fehler, den Sie erhalten. Wenn Sie keinen Fehler bekommen, dann erwähnen Sie das auch. –

+0

Ich habe versucht, explizite warte auch mit den XPaths, die Sie erwähnten, bekomme ich dies: "org.openqa.selenium.TimeoutException: Erwartete Bedingung fehlgeschlagen: Warten auf Element klickbar". –

Verwandte Themen