2017-11-24 17 views
0

es wartet auf das Element btnSearch angezeigt werden und klicken Sie darauf, aber es scheint nicht zu tun, haben Sie eine Idee, warum es passiert?Selenium webdriver wait element und klicken Sie

Dank

+1

Welchen Browser benutzen Sie? Wenn ich Ihren Code über Chrome austrage, erhalte ich die Warnung "Bitte Adresse eingeben". – Reezo

+0

Ich verwende Internet Explorer – dtjmsy

+0

String service = "C: \\ ToolsQA \\ IEDriverServer_x64_3.7.0 \\ IEDriverServer.exe"; \t \t System.setProperty ("webdriver.ie.driver", Dienst); \t \t InternetExplorerDriver-Treiber = neu InternetExplorerDriver(); – dtjmsy

Antwort

1

Dies fügt USA als locale, und wartet dann, bis ein Bild des Arztes angezeigt wird.

driver.get("http://www.wiki-doctor.com"); 
//Enter united states into field 
driver.findElement(By.id("field-findDoctor-town")).sendKeys("United States"); 
WebElement element = (new WebDriverWait(driver, 10)) 
       .until(ExpectedConditions.elementToBeClickable(By.id("btnSearch"))); 
JavascriptExecutor executor = (JavascriptExecutor)driver; 
executor.executeScript("arguments[0].click();", element); 

WebDriverWait wait = new WebDriverWait(driver,10); 
//Wait for picture of doctor 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("#dvparcticianlist > div.row > div > div.listing-row > div.doc-photo-container"))); 
     System.out.println("Search Successful"); 
    } 
+0

Hallo, Reezo, eine Frage in Bezug auf das Argument [0], was ist das? Woher kommt dieses Objekt? cheers – dtjmsy

+0

Überprüfen Sie die Definition von Selenium ExecuteScript Seite Die Argumente werden für das JavaScript über die magische Variable "Argumente" zur Verfügung gestellt, als ob die Funktion über "Function.apply" aufgerufen wurde und der Rückgabewert von executeScript ist: Rückgabewerte: Boolesch, Long, String, List oder WebElement. Oder null. was bedeutet, dass zurückgegebene Objekt ist eine Liste, und Sie können mit Argumenten [0] magische Variable interagieren. – Reezo

+0

ok danke an alle :) – dtjmsy

1

Sobald die Seite geladen ist, zuerst müssen wir wait für den beabsichtigten WebElement das heißt die erste Search Box anklickbar sein. Dann werden wir einen Text sowohl auf die Search Boxes und rufen Sie dann click() Methode auf dem Search Button senden wie folgt:

System.setProperty("webdriver.ie.driver", "C:\\Utility\\BrowserDrivers\\IEDriverServer.exe"); 
WebDriver driver = new InternetExplorerDriver(); 
driver.get("http://www.wiki-doctor.com"); 
WebElement locality = (new WebDriverWait(driver, 5)) 
     .until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='field-findDoctor-town']"))); 
locality.sendKeys("Pune"); 
driver.findElement(By.xpath("//input[@id='speciality']")).sendKeys("Doctor"); 
driver.findElement(By.xpath("//button[@id='btnSearch']")).click(); 
+0

Ich habe versucht, Ihren Code und immer noch nichts passiert, auch die Suchbox ist nicht gefüllt, es ist wie die IDs nie gefunden – dtjmsy

+0

Ich denke, es gibt etwas mit meiner Internet Explorer - Version und dem Download - Treiber zu tun, da die Codes ziemlich gut funktioniert in chrome – dtjmsy

+0

Überprüfen Sie meine aktualisierte Antwort und lassen Sie mich wissen, den Status – DebanjanB

Verwandte Themen