Java 如何阅读style=";显示:块;在selenium web驱动程序中使用x路径的元素值?

Java 如何阅读style=";显示:块;在selenium web驱动程序中使用x路径的元素值?,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,请帮助我阅读我试图使用x-path访问的元素的文本(我尝试了绝对和部分x-path,但无法读取值。下面是我的代码。获取消息-“信息:检测到的方言:W3C” 您试图查找的元素实际上是隐藏的,它显示在鼠标上方。因此,我们必须首先使web元素可见,然后才能使用getText()函数 步骤1:确定要鼠标悬停的web元素: WebElement ele = driver.findElement(By.xpath(".//*[@id='main-nav']/ul/li[4]/a")); 步骤2:使用Act

请帮助我阅读我试图使用x-path访问的元素的文本(我尝试了绝对和部分x-path,但无法读取值。下面是我的代码。获取消息-“信息:检测到的方言:W3C”


您试图查找的元素实际上是隐藏的,它显示在鼠标上方。因此,我们必须首先使web元素可见,然后才能使用getText()函数

步骤1:确定要鼠标悬停的web元素:

WebElement ele = driver.findElement(By.xpath(".//*[@id='main-nav']/ul/li[4]/a"));
步骤2:使用Actions类移动webelement:

Actions act = new Actions(driver);
act.moveToElement(ele);
act.build().perform();
步骤3:现在,元素可视后,继续使用getText()获取元素的文本

 String str3 = driver.findElement(By.xpath("//*[@id='main-nav']/ul/li[4]/ul/li[1]/a")).getText();
 System.out.println(str3);

您正在尝试从当前屏幕上未显示的webelement获取文本

我们可以通过两种方式获得文本

  • 使用Javascript执行器

    System.setProperty("webdriver.gecko.driver", "C:\\BrowserDriver\\geckodriver.exe");
    
    WebDriver driver = new FirefoxDriver();
    driver.manage().timeouts().implicitlyWait(50,TimeUnit.SECONDS);
    JavascriptExecutor js = (JavascriptExecutor) driver;
    driver.get("http://www.lavasa.com/learn/acca.aspx");
    WebElement element = driver.findElement(By.xpath("//*[@id='main-nav']/ul/li[4]/ul/li[1]/a"));
    String script =(String)js.executeScript("return arguments[0].innerHTML;",element);
    System.out.println(script);
    

  • 2.使用操作鼠标悬停元素,然后使用getText。

    您可以使用selenium的
    getAttribute()
    方法,如下所示:

      driver.findElement(By.xpath("//*[@id='main-nav']/ul/li[4]/ul/li[1]/a")).getAttribute("innerHTML");
    

    您希望获得什么样的确切输出?请同时包含您试图解析的示例页面(或示例页面的一部分)的HTML。如果这是您正在寻找的答案,请标记“接受为答案”。
      driver.findElement(By.xpath("//*[@id='main-nav']/ul/li[4]/ul/li[1]/a")).getAttribute("innerHTML");