如何在 Selenium 中获取 javascript 工具提示消息?

How to get javascript tooltip message in Selenium?

提问人:Oreliya Fernando 提问时间:9/23/2015 最后编辑:RajeshKdevOreliya Fernando 更新时间:9/23/2015 访问量:1792

问:

我想收到一条工具提示消息,当鼠标悬停在图标上时会出现该消息。我想在 Selenium 方法中获取消息并将其分配给 .gettext()String

以下是我的代码:

   JavascriptExecutor jse = (JavascriptExecutor)driver;
   String script = "return driver.findElement(By.xpath(ObjectRepository.tooltipMsg)).getText();";
   String message = ((JavascriptExecutor) driver).executeScript(script).toString();
   Thread.sleep(3000);
   System.out.println("message "+message);

这不起作用,我收到错误driver is not defined

JavaScript

评论

0赞 Shubhasmit Gupta 9/23/2015
你能发布HTML代码吗...

答:

1赞 Mahsum Akbas 9/23/2015 #1

首先,您需要定义 Drvier:

WebDriver driver = new FirefoxDriver();

稍后,您可以获取元素的属性具有工具提示

String message = driver.findElement(By.xpath("ObjectRepository.tooltipMsg")).getAttribute("title");
2赞 Manu 9/23/2015 #2

由于以下语句而引发错误。driver is not defined

return driver.findElement(By.xpath(ObjectRepository.tooltipMsg)).getText();

这实际上不是 Javascript,而是用于查找 webelement 文本的 Java 代码。因此,在创建 javascript 时不能使用 java 中定义的驱动程序。

使用 Javascript:

String script = "return document.getElementById("your-id").innerHTML;";   
String message = ((JavascriptExecutor) driver).executeScript(script).toString();

使用 Java:

String message = driver.findElement(By.xpath("your XPath")).getText();

您需要在上面提供正确的 XPath 或 Id 才能找到该元素。如果您有任何疑问,请告诉我。

评论

0赞 Oreliya Fernando 9/24/2015
我像这样更改了我的代码 String script = “return document.getElementById(\”_iwarn_txtNoOfNights\“).innerHTML;”;但它打印一个 null 值。
0赞 Manu 9/25/2015
它可能正在打印,因为工具提示的文本被保存为标题属性。尝试使用 .希望能有所帮助。nulldocument.getElementById(\"_iwarn_txtNoOfNights\").getAttribute("title");