2016-10-17 17 views
-1

Ich habe alle möglichen Element-Locators versucht, aber nach erfolgreicher Anmeldung der Code ist unalbe auf das Element klicken Ich möchte es klicken. Ich erhalte folgende Fehlermeldung:Selenium webdriver Skript ist nicht in der Lage, nach erfolgreicher Anmeldung auf ein Element zu klicken

...

class charSequence { 
    String str1="[email protected]"; 
    String str2= "abcdfghhh"; 
    CharSequence cs1 = "int1"; 
    CharSequence cs2 = "int2"; 
    //boolean retval; 
    public charSequence(String str){} 
} 

public class QueuedRefund { 
    public static void main(String[] args) {  
     String[] temp1 = new String[1]; 
     String[] temp2 = new String[1]; 
     charSequence s1 = new charSequence("str1"); 
     charSequence s2 = new charSequence("str2"); 
     temp1[0]=s1.str1; 
     temp2[0]=s2.str2; 

     System.setProperty("webdriver.gecko.driver","/home/srvmedia/Geckodriver /geckodriver"); 
     WebDriver driver = new FirefoxDriver(); 
     driver.get("https://dadfd.mywebsite.in/merchant/login"); 
     driver.findElement(By.name("email")).sendKeys(temp1); 
     driver.findElement(By.name("password")).sendKeys(temp2); 
     driver.findElement(By.id("loginForm")).submit(); 
     //driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 

     driver.findElement(By.xpath("html/body/div[6]/div/div/div[1]/div[1]/div[2]/div/a[1]/div")).click(); 

     //driver.findElement(By.xpath("//div[2]/div/a/div")).click(); 

    } 

} 
+0

Wo ist der Fehler? – JDelorean

+0

Welches Element möchten Sie anklicken? Möglicherweise müssen Sie warten, bis das Element/die Seite geladen wird, bevor Sie versuchen, darauf zu klicken. – Moser

Antwort

0

(1) Ihre Frage sagt: Nach erfolgreich der Code anmelden ist nicht in der Lage, das Element klicken Ich will es klicken. und (2) Sie haben den Tag "nosuchelementexception" verwendet. Basierend auf diesen beiden Fakten, ich versichere Ihnen, erhalten Sie einen Fehler in dieser Zeile: driver.findElement (By.xpath ("html/body/div [6]/div/div/div [1]/div [1]/div [2]/div/a [1]/div ")). click();

Es wird hilfreich sein, die Frage zu verstehen und meine obige Annahme zu bestätigen, wenn Sie die Fehlermeldung bitte posten.

Die Antwort auf Ihre Frage hängt davon ab, ob der von Ihnen verwendete Element-Locator (xpath) korrekt ist oder nicht. Ich vermute, der XPath ist nicht korrekt, weil Sie wahrscheinlich nosuchelementexception bekommen.

Sie können überprüfen, ob der Xpath richtig ist oder nicht FirePath Add-on im Firefox-Browser verwenden. Geben Sie nach der Installation den Xpath im letzten Tab "Firepath" ein und drücken Sie die Eingabetaste. Das entsprechende Element (auf das Sie klicken möchten) sollte hervorgehoben werden. Ist dies nicht der Fall, dann ist der XPath nicht so, wie er sein sollte.

Sie können auch prüfen, ob das Element, auf das Sie klicken möchten, sich in einem anderen Frame auf dieser Seite befindet. In diesem Fall müssen Sie zuerst zu diesem Rahmen wechseln. Gibt es verschiedene Rahmen auf dieser Seite? Sie können Firepath auch verwenden, um dies zu sehen.

Wenn Sie sicher sind (und Sie die Verwendung von Firepath überprüft haben), dass der xpath korrekt ist, überprüfen Sie, ob dieses Element gemäß der Quelle dieser Seite aktiviert und angezeigt wird.

Webelement element = driver.findElement(By.xpath("xpath_of_that_element")); 
System.out.println("The element is enabled: " + element.isEnabled()); 
System.out.println("The element is displayed: " + element.isDisplayed()); 

Ich rate mindestens eine der beiden oben genannten print-Anweisungen wird "falsch" angezeigt.

Wenn der xpath korrekt ist und oberhalb von zwei print-Anweisungen 'true' angezeigt wird, versuchen Sie, Text in dem WebElement (auf das Sie klicken möchten) mit der getText() - Methode von WebElement zu drucken. Gelingt es? Ich denke es wird nicht, weil Sie wahrscheinlich nosuchelementexception bekommen.

Hinweis: Wenn die Ausnahme, die Sie erhalten, nicht nosuchelementexception ist, können Sie dieses Tag aus der Frage entfernen.

Verwandte Themen