我有一个小行李图标,当鼠标悬停在图标上时,会显示工具提示文本.我想通过在Visual Studio中编写C#代码来测试它.
以下是html中行李图标的显示方式:
<div class="icon_png information icon_baggageyes" title="1 piece included in this fare."></div>
这是我的代码来测试工具提示:
Actions a = new Actions(driver);
IWebElement tooTipObject = driver.FindElement(By.XPath("//div[@class='icon_png information icon_baggageyes']"));
a.MoveToElement(tooTipObject).Click().Build().Perform();
问题是,当我逐步调试上面的代码时,工具提示文本将显示出来.但是当我运行测试时,工具提示文本现在显示了.
通过在互联网上搜索,有人说原因是鼠标没有专注于行李图标足够长的时间来显示工具提示文本.
但是如何解决这个问题呢?我一直在寻找解决方案,但找不到适用于我的解决方案.
另一个问题是我的代码:a.MoveToElement(tooTipObject).Click().Build().Perform();
工具提示文本只会显示我在此代码中放置.Click().但我正在测试鼠标悬停在功能上,不应该点击图标.这太奇怪了.
解决方法:
由于工具提示是由div的title属性触发的,那么如何检查该属性值呢?它依赖于所有浏览器在悬停时将标题显示为工具提示的假设(据我所知,所有桌面浏览器都这样做).
谷歌搜索一下,看起来像这样的东西应该工作:
WebElement element = driver.FindElement(
By.XPath("//div[@class='icon_png information icon_baggageyes']"));
string titleText = element.getAttribute("title");
之后,您可以验证titleText是否符合预期.