我在页面中有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);
问题是我只获得了在控制台中打印的第一个元素的工具提示文本。 是因为我需要刷新或重置构建器吗?
当我删除第一个元素的代码时,这真的很奇怪,然后我可以得到第二个元素的工具提示文本。所以,基本上它只是在单次执行中获取工具提示文本一次。
答案 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"));
答案 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,它无法显示文本。更换带有数据原始标题的标题。我能够获得文本。