【问题标题】:How to identify the webelements(button,drop down etc) by using selenium webdriver如何使用 selenium webdriver 识别 webelements(按钮、下拉菜单等)
【发布时间】:2016-12-03 21:44:36
【问题描述】:

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

【问题讨论】:

  • 试试这个((JavascriptExecutor) driver).executeScript("arguments[0].click();", element);。您必须在自动化代码中相应地更改定位器。
  • 是的,我试过了。它适用于 button ,但适用于下拉菜单如何使用此元素。我想在控制台中打印下拉列表 WebElement dropDown = driver.findElement(By.id("countTd")); dropDown.click(); driver.findElement(By.xpath("//td[@id='countTd']/span[text()='"']")).click.getOptions();
  • @arpitasoni 您不必为此使用 JavascriptExecutor。此外,您也不必单击该元素。试试这个代码Select selectElement = new Select(driver.findElement(By.Id("countTd"))); List<WebElement> options = selectElement.getOptions();。您可以遍历选项列表并使用 for 循环打印值。

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


【解决方案1】:

尝试下面的代码来检索所有下拉值

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

希望对你有帮助

【讨论】:

    【解决方案2】:

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

    1. 如果页面没有嵌入jQuery
    2. jQuery 库未加载成功。
    3. 浏览器同步问题。

    通过在浏览器控制台上执行以下命令,第一个检查页面是否嵌入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 + ");");
    

    【讨论】:

      【解决方案3】:

      您可以使用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()方法即可。

      希望对你有帮助..:)

      【讨论】:

        猜你喜欢
        • 2023-04-06
        • 1970-01-01
        • 2014-08-21
        • 1970-01-01
        • 1970-01-01
        • 2012-09-05
        • 2022-01-28
        • 1970-01-01
        • 2023-04-02
        相关资源
        最近更新 更多