selenium - 在可见面板中查找元素名称( 如果存在其他具有相同名称的不可见面板)

  显示原文与译文双语对照的内容
111 4

要按名称查找元素,请执行以下操作:


text_field = driver.find_element_by_name('panelHeader')

问题是。 具有相同名称'panelHeader'的3个面板,根据特定网页上的操作,所需的面板( 超出 3 ) 可以见。 所以每当我试图按名称查找元素时,总是试图找到第一个 panelHeader 。 所以我不能按名称做类似查找元素,这样我所指示的名称就是可以见面板。

我清楚了?

时间: 原作者:

98 3

尝试用jQuery定位它。 这是在JAVA中实现的方式: 在中选择并标识元素,以便在 selenium-2 Java中使用它。 你的jQuerySelector将显示如下:


String jQuerySelector ="'$("*[name='panelHeader'].filter(':visible')")'";

144 5

我使用 C#,但我想这在 python 中也是可能的。 你可以按名称获取所有元素,然后检查每个元素的'显示'值。 ( 在 C# 中,抱歉 ! :p )


ReadOnlyCollection<IWebElement> things = driver.FindElements(By.Name("panelHeader"));
foreach(IWebElement thing in things)
{
 if (thing.displayed)
 {
//use thing here! :)
 }
} 

原作者:
...