如何使用Selenium Web驱动程序获取图像元素的工具提示消息?

时间:2018-07-25 13:36:20

标签: selenium selenium-webdriver browser-automation

我无法在Salesforce(CRM应用程序)页面上获得图像元素的工具提示文本。 字段旁边有一个帮助图标,当用户将鼠标悬停在该图标上时,会显示一条like this-click here for image消息,我想捕获该帮助文本并将其断言以进行验证。

首先,我不能使用.getAttribute(“ title”),因为title属性中没有文本;其次,当我将XPath赋予图像并应用.getText()时,.getText()无法正常工作。

这是页面源代码片段 Click here for page source code

有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

您能告诉我为什么.getText()不起作用吗?或者,您可以执行以下操作: 1.提取HTML代码 2.将其另存为字符串 3.拆分字符串以提取所需的文本

请参阅How to get HTML code of a WebElement in Selenium

OR

//moving to element which triggers this tooltip
Actions action= new Actions(driver); 
action.moveToElement(driver.findElement(By.xpath("//td[@class='labelcol']/span[@class='helpButtonOn']"))).build().perform();
//insert wait here
String hovertext=driver.findElement(By.xpath("//td[@class='labelcol']/span[@class='helpButtonOn']/script")).getText();
System.out.println(hovertext);

OR

// javascript executor
WebElement element = driver.findElement(By.xpath("//td[@class='labelcol']/span[@class='helpButtonOn']/script"));
String hovertext = (String)((JavascriptExecutor)driver).executeScript("return arguments[0].innerHTML", element);
System.out.println(hovertext);

答案 1 :(得分:0)

谢谢!!! 下面的东西对我有用。在隐藏的脚本标记属性“文本内容”或“ innerHTML”中找到该消息。 以下是代码:

public void helpTextAssert(WebElement pathOfToolTip,String enterFieldName,String enterExpectedHelpText){         字符串originalActualText = pathOfToolTip.getAttribute(“ textContent”);         //使用下面的布尔变量,因为我在text content属性中有多余的文本         布尔值containsTextFlag = pathOfToolTip.getAttribute(“ textContent”)。contains(enterExpectedHelpText);         如果(originalActualText!= null && enterExpectedHelpText!= null                 && originalActualText.length()> = enterExpectedHelpText.length()&& containsTextFlag == true){             System.out.println(“帮助文本:” + enterExpectedHelpText +“可用于字段” + enterFieldName);         }其他{             sAssert.assertEquals(containsTextFlag,true,“字段的帮助文本断言失败:” + enterFieldName);             System.out.println(“帮助文本:” + enterExpectedHelpText +“不可用”);         }     }