2016-07-29 25 views
0

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

this' ((JavascriptExecutor) -Treiber) Versuchen .executeScript ("Argumente [0] .click();", Element); '. Sie müssen die Locators entsprechend in Ihrem Automatisierungscode ändern. – Harish

+0

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(); –

+0

Siehe dieses http: // stackoverflow.com/questions/6430462/how-to-select-get-drop-down-option-in-selenium-2 – Siva

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.

  1. Wenn Seiten nicht in jQuery eingebettet sind.
  2. jQuery Bibliothek wurde nicht erfolgreich geladen.
  3. 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 .. :)