使用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”?
答案 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;