selenium webdriver - 等待列表中最后一个类的outerHTML属性包含“X”

时间:2017-12-05 14:50:06

标签: c# selenium selenium-webdriver webdriver

使用c#和selenium webdriver,我怎么能等到列表中的最后一个类包含特定属性?

在我的AUT中,我在一个页面上有三个类(它们都被称为段落)。我需要专门获取最后一段(我正在使用列表但可以随意提出更好的方法)然后等到页面上的最后一个类包含outerHTML属性为“X”。

这是我到目前为止所做的:

我创建了一个列表来存储所有类,获取最后一个类,最后获取最后一个类的outerHTML属性。

IList<IwebElement> Element = driver.FindElements(By.ClassName("Paragraph"));
var GetLastElement = Element.Last();
var LastElementAttribute = GetLastElement.GetAttribute("outerHTML");

根据我上面的代码,如何添加一个等待条件来检查列表中的最后一个类是否包含outerHTML属性为“X”?

2 个答案:

答案 0 :(得分:2)

如果我理解你的权利 - 在最后的段落中使用lambda for X外观HTML格式如下:

Wait().Until(driver => driver
  .FindElements(By.ClassName("Paragraph"))
     .Last().GetAttribute("outerHTML")
       .Contains("X"));

答案 1 :(得分:1)

根据定义, outerHTML 会返回元素及其子元素的html。在某些情况下,可以将其设置为使用html字符串完全替换元素。因此,在这种情况下,值得查看以下任何 ExpectedConditions

  • TextToBePresentInElement
  • TextToBePresentInElementLocated
  • TextToBePresentInElementValue(IWebElement, String)
  • ToString
  

在上面提到的 ExpectedConditions 列表中, ToString 看起来更有希望,因为它是Returns a String that represents the current Object.因此,我们可以轻松地在字符串中搜索预期的字符&#34; X&#34;