如何使用selenium webdriver识别webelements(按钮,下拉等)

时间:2016-07-29 08:43:35

标签: selenium-webdriver polymer-1.0 shadow-dom

如何通过selenium webdriver识别webelement按钮 executeScript方法未定义。在哪里添加这个 driver.executeScript("return $('body /deep/ <#selector>')")

3 个答案:

答案 0 :(得分:0)

尝试使用以下代码检索所有下拉列值

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

希望它会有所帮助

答案 1 :(得分:0)

我们将在下面的场景中得到这种类型的异常。

  1. 如果页面未嵌入jQuery
  2. jQuery库未成功加载。
  3. 浏览器syn isssue。
  4. 首先在jQuery中嵌入检查页面,方法是在浏览器控制台上执行以下命令

    window.jQuery=='undefine' // Its for checking jQuery is present on page if yes then return true.
    

    jQuery.active==0  // Its for  checking jquery is activated on page if yes then return true. 
    

    然后尝试以下代码

    String getArgument="0"; // take single element
    //String getArgument="";// take list of matched element
    
    ((JavascriptExecutor) driver).executeScript("return $( #selector).get(" + getArgument + ");");
    

答案 2 :(得分:0)

您可以使用getTagName()简单地识别元素,如下所示: -

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

节点: - 无需使用JavascriptExecutor执行点击,只需调用.click()方法即可执行此操作。

希望它有所帮助.. :)