So identifizieren Sie Webelement-Schaltflächen von Selen Webdriver ExecuteScript-Methode ist undefined. Wo kann man diese driver.executeScript("return $('body /deep/ <#selector>')")
hinzufügen?So identifizieren Sie die Webelemente (Schaltfläche, Dropdown usw.) mithilfe von Selen-Webdriver
0
A
Antwort
0
Versuchen unter Code für all Drop-Down-Abrufen Werte
WebDriverWait wait = new WebDriverWait(d, 10);
WebElement selectMonth = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//div[@title = 'Birthday']")));
selectMonth.click();
List<WebElement> allmonths = wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.cssSelector("span#BirthMonth > div.goog-menu.goog-menu-vertical")));
for(WebElement month : allmonths) {
System.out.println(month.getText());
Hoffen, dass es
0
hilft Wir werden diese Art von Ausnahme in folgendem Szenario bekommen.
- Wenn Seiten nicht in
jQuery
eingebettet sind. jQuery
Bibliothek wurde nicht erfolgreich geladen.- Browser Syn isssue.
Erste Kontrolle Seiten wird in jQuery
oder nicht unter Befehl durch Ausführen auf Browser-Konsole eingebettet
window.jQuery=='undefine' // Its for checking jQuery is present on page if yes then return true.
und
jQuery.active==0 // Its for checking jquery is activated on page if yes then return true.
dann unter Code versuchen
String getArgument="0"; // take single element
//String getArgument="";// take list of matched element
((JavascriptExecutor) driver).executeScript("return $(#selector).get(" + getArgument + ");");
0
Sie können Identifizieren Sie das Element einfach mit getTagName()
wie folgt: -
WebElement element = driver.findElement(By.id("countTd"));
// To verify if element is button
if(element.getTagName().equals("button")) {
element.click();
}
// To verify if element is dropdown
if(element.getTagName().equals("select")) {
// Now pass it to Select class to work
Select selectElement = new Select(element);
// Now you can get all options
List<WebElement> options = selectElement.getOptions();
//Now you can print all options text
for(WebElement option : options) {
System.out.println(option.getText());
}
}
Knoten: - Es besteht keine Notwendigkeit Klick ausführen zu verwenden JavascriptExecutor
ist, wäre es einfach durch den Aufruf .click()
Verfahren durchführen werden.
Hoffe, es hilft .. :)
this' ((JavascriptExecutor) -Treiber) Versuchen .executeScript ("Argumente [0] .click();", Element); '. Sie müssen die Locators entsprechend in Ihrem Automatisierungscode ändern. – Harish
ya ich habe das versucht. Es funktioniert für Knopf, aber für Dropdown, wie man dieses Element benutzt. Ich möchte die Dropdown-Liste in der Konsole WebElement drucken dropDown = driver.findElement (By.id ("countTd")); dropDown.click(); driver.findElement (By.xpath ("// td [@ id = 'countTd']/span [Text() = '"'] ")). Click.getOptions(); –
Siehe dieses http: // stackoverflow.com/questions/6430462/how-to-select-get-drop-down-option-in-selenium-2 – Siva