2017-02-15 3 views
-1

mir helfen, die xpath für Button "für JS Alert-Klick", um herauszufinden,Selen-XPath-Java oder CSS-Locator

Hier ist der Link https://the-internet.herokuapp.com/javascript_alerts

ich diesen xpath bin mit -

.//*[@id='content']/div/ul/li[1]/button 

und es zeigt kein solches Element.

Dies ist der Code verwendet:

public void test() { 
    driver.get("the-internet.herokuapp.com/javascript_alerts");  
    WebElement element=driver.findElement(By.id("//button[text()='Click for JS Alert']")); 
    element.click(); 
} 
+2

Was ist mit '// button [text() = 'Klicken Sie für JS Alert']'? – philonous

+0

Nein, es funktioniert nicht. – Wait

+0

Ich bin writting diesen Code – Wait

Antwort

0

verwenden XPath: (//div[@class='example']/ul/li/button)[1]

Ihr Code diese etwas wie sein:

driver.get(""the-internet.herokuapp.com/javascript_alerts"); 
WebElement element=driver.findElement(By.xpath("(//div[@class='example']/ul/li/button)[1]")); 
element.click(); 
+0

Nein, es wird alle 3 Schaltfläche auswählen, aber ich möchte nur auf eine Schaltfläche klicken. – Wait

+0

@Test \t öffentlicher void test() { \t \t driver.get ("https://the-internet.herokuapp.com/javascript_alerts"); \t \t \t WebElement element = driver.findElement (By.id ("// button [text() = 'Klicken Sie für JS Alert']")); \t \t element.click(); \t \t \t} mein Code, – Wait

+0

Es wird nicht alle 3 Tasten auswählen. Der Schalter '(// div [@ class = 'Beispiel']/ul/li/button)' ruft alle 3 Knöpfe ab, aber da ich den Index des Knopfes '[1]' festlege, wird er nur abgerufen der erste. –

0

// * [@ id = 'Inhalt ']/div/ul/li [1]/button funktioniert für mich. Welchen Browser benutzen Sie? Wie validierst du?

+0

Mozilla @Test \t public void Test() { \t \t driver.get ("https://the-internet.herokuapp.com/javascript_alerts") zu finden; \t \t \t WebElement element = driver.findElement (By.id ("// button [text() = 'Klicken Sie für JS Alert']")); \t \t element.click(); \t \t \t} – Wait

+0

finden Sie den Code, der – Wait

+0

seine adaequat bin writting WHN Sie XPath in mozilla schreiben, aber wenn Sie in Code wie driver.findElement (By.id („“) verwenden, heißt es, dass kein solches Element gefunden und verwende implizit warte auch – Wait

2

Sie verwenden, um Code in einer falschen Weise:

WebElement element=driver.findElement(By.id("//button[text()='Click for JS Alert']")); 

By.id angewandt werden kann, nur Element mit dem angegebenen id Attribute zu suchen, während Sie XPath stattdessen verwenden.

Sie müssen unten verwenden:

WebElement element=driver.findElement(By.xpath("//button[text()='Click for JS Alert']")); 
element.click(); 
+0

ohh das ist fehler.ich weiß nicht wie könnte ich das vermissen, aber danke any way – Wait

0

diesen Code unten versuchen.

driver.get("https://the-internet.herokuapp.com/javascript_alerts"); 
driver.manage().window().maximize(); 
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); 
driver.findElement(By.xpath("//button[contains(text(), 'Click for JS Alert')]")).click(); 
Thread.sleep(2500); 
Alert alert = driver.switchTo().alert(); 
System.out.println(driver.switchTo().alert().getText()); 
alert.accept(); 
+0

Wenn diese Antwort "hilfreich" für Sie ist, dann markieren Sie bitte diese Antwort als "Accepted". –

Verwandte Themen