我无法在Salesforce(CRM应用程序)页面上获得图像元素的工具提示文本。 字段旁边有一个帮助图标,当用户将鼠标悬停在该图标上时,会显示一条消息,我想捕获该帮助文本并将其断言以进行验证。
首先,我不能使用.getAttribute(“ title”),因为title属性中没有文本;其次,当我将XPath赋予图像并应用.getText()时,.getText()无法正常工作。
这是页面源代码片段
有人可以帮我吗?
答案 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 +“不可用”); } }