如何在 java-selenium 中不使用 findElement() 或 findElements() 来检查元素是否存在?

use*_*aid 1 java selenium selenium-webdriver

场景是

  1. 不使用 findElement() 或 findElements() 方法在 selenium 中查找元素。
  2. 代码不应引发任何异常。相反,如果找到该元素,则打印找到的元素,否则打印未找到的元素。(人们可以做任何他/她想做的事情,而不是打印)。

use*_*aid 5

为了查找元素是否存在,我在selenium-java中使用了JavascriptExecutor。

下面是代码。我已经使用document.getElementById(id)一种方法演示了该解决方案,您是否可以使用其他方法,例如document.getElementsByTagName(name)document.getElementsByClassName(className)等等。为了演示我使用了http://automationpractice.com/index.php

        System.setProperty("webdriver.chrome.driver", "chromedriver_path");
        WebDriver driver = new ChromeDriver();

        driver.get("http://automationpractice.com/index.php");
    
        JavascriptExecutor js = (JavascriptExecutor) driver;
        boolean found = (boolean) js.executeScript(
                "var element = document.getElementById(\"search_query_top\"); if(typeof(element) != 'undefined' && element != null){return true ;}else{return false;}");
        if(found)
            System.out.println("Element Found");
        else
            System.out.println("Elemnet not Found");
        
        driver.close();
Run Code Online (Sandbox Code Playgroud)