无法使用Selenium WebDriver获取工具提示文本

时间:2012-01-05 09:10:44

标签: selenium webdriver tooltip

我在页面中有5个工具提示。使用WebDriver,我试图验证这些工具提示文本。

我按顺序使用以下代码来获取所有5个元素的工具提示文本:

Actions builder = new Actions(WebDriver);
builder.ClickAndHold(Element1).Perform();
Console.WriteLine(Element1ToolTip.text);

builder.ClickAndHold(Element2).Perform();
Console.WriteLine(Element2ToolTip.text);

builder.ClickAndHold(Element3).Perform();
Console.WriteLine(Element3ToolTip.text);

问题是我只获得了在控制台中打印的第一个元素的工具提示文本。 是因为我需要刷新或重置构建器吗?

当我删除第一个元素的代码时,这真的很奇怪,然后我可以得到第二个元素的工具提示文本。所以,基本上它只是在单次执行中获取工具提示文本一次。

4 个答案:

答案 0 :(得分:1)

通过比较网络元素的“标题”属性和预期的工具提示文字来验证工具提示。

Console.WriteLine(Element1.GetAttribute("title"));

Console.WriteLine(Element2.GetAttribute("title"));

答案 1 :(得分:0)

输入元素的工具提示文本将是标题属性,对于图像,alt属性将是工具提示。这是HTML 4的标准,因此我不确定您是否需要悬停和所有。

Console.WriteLine(InputElement1.GetAttribute("title"));
Console.WriteLine(ImageElement1.GetAttribute("alt"));

http://www.javascriptkit.com/howto/toolmsg.shtml

答案 2 :(得分:0)

我认为,它需要从元素中释放:

builder.release(Element1).perform();

因此,您的代码可能如下所示:

Actions builder = new Actions(WebDriver);
builder.ClickAndHold(Element1).Perform();
Console.WriteLine(Element1ToolTip.text);
builder.release(Element1).perform();

builder.ClickAndHold(Element2).Perform();
Console.WriteLine(Element2ToolTip.text);
builder.release(Element2).perform();

builder.ClickAndHold(Element3).Perform();
Console.WriteLine(Element3ToolTip.text);
builder.release(Element3).perform();

答案 3 :(得分:0)

我面临同样的问题,我在运行测试时检查了视图源页面,看起来title属性显示为data-original-title.Due,它无法显示文本。更换带有数据原始标题的标题。我能够获得文本。