![](/img/trans.png)
[英]How do you add listbox data into a textBox on another webPage. Using Visual Studio 2015 C#
[英]How to count only elements displayed on WebPage. Selenium
我有一个带有两个标签的网页。
当我在一个选项卡上获得元素计数时,它将为我同时显示两个选项卡的计数,而不是我单击的那个计数。
因此,如果我要检查Tab1上存在的元素,而不是Tab2上没有的元素,则无法执行此操作,因为在两个选项卡上都得到相同的结果。
if (driver.FindElements(By.XPath("//div[contains(text(), 'Dummy Text')]")).Count != 0)
{
// Failed Test message ;
}
我希望在Tab1上计数为0,因为不会显示此文本,在Tab2上计数应该为8,但在两个选项卡上的计数均为8。
如何获取显示在页面而非背景中的元素的数量?
我敢肯定这是因为网页上的标签页,硒将这两个标签页视为相同的网页内容。
Selenium将返回DOM中的所有对象,而不仅仅是用户可见的那些对象。
我不相信有任何XPath或CSS选择器仅允许您选择可见元素。 我可以想到一个潜在的令人讨厌的XPath,它可以确保没有父级显示:无,但不知道这样是否真的有效,并且听起来太可怕,太复杂了,甚至无法考虑。
您需要遍历每个返回的元素,并检查“ displayed”是否返回false。 我很想将Driver类扩展为具有FindDisplayedElements方法,该方法将为您包装此功能。
但是,如果您使用RemoteWebDriver,则此方法在API调用方面可能会很昂贵。 另一种选择是确保父对象被隐藏,因为所有子对象也将继承该行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.