Selenium 将I.Expect.Text与fluentautomation一起使用
I.Expect.Text(“sometext”)是否需要使用指定选择器的In方法 我问,因为我继承的一些测试没有在方法中附加,我们的测试通过,即使我知道提供的文本在页面上不存在 我已经查看了文档,但似乎不清楚(对我来说)In选择器是否必须存在。我假设它需要存在 我想我要问的是,如果为了使断言正确工作,确实需要在方法中添加,我将如何流利地声明“sometext”是否出现在页面上的任何div或p标记或类中,或者我应该在整个页面中使用id。我看到了一些有用的东西 那么,像下面这样的东西可以包装到AssertSyntaxProvider上的扩展方法中,但是它看起来很笨重/笨拙Selenium 将I.Expect.Text与fluentautomation一起使用,selenium,ui-automation,fluentautomation,Selenium,Ui Automation,Fluentautomation,I.Expect.Text(“sometext”)是否需要使用指定选择器的In方法 我问,因为我继承的一些测试没有在方法中附加,我们的测试通过,即使我知道提供的文本在页面上不存在 我已经查看了文档,但似乎不清楚(对我来说)In选择器是否必须存在。我假设它需要存在 我想我要问的是,如果为了使断言正确工作,确实需要在方法中添加,我将如何流利地声明“sometext”是否出现在页面上的任何div或p标记或类中,或者我应该在整个页面中使用id。我看到了一些有用的东西 那么,像下面这样的东西可以包装到As
var texts = I.Find("html").Elements.Select(el => el.Item2().Text);
I.Assert.True(() => texts.Any(t => t.Contains("statement1")));
I.Assert.True(() => texts.Any(t => t.Contains("statement2")));
I.Assert.True(() => texts.Any(t => t.Contains("statement3")));
谢谢你的帮助
最后一件事-这是一个很棒的图书馆 是,中的
作为链的执行块是必需的。自从我能够专注于扩展FluentAutomation以来,已经有一段时间了,所以针对多个元素进行断言并没有变得更好
我确实有一个很好的计划,我只是没有时间去实施
至于您的具体测试,您已经接近我现在使用的测试:
I.Open("http://fluent.stirno.com");
var elements = I.FindMultiple("*").Children.Select(x => x());
I.Assert.True(() => elements.Any(x => x.Element.Text.Contains("v3.0 Released!")));
v3.1将有一些更好的方法来处理这个问题,但这至少使用了Sizzle的*选择器来获取每个元素(警告:可能非常慢,所以如果可以限制的话,可以使用“div,p,span”或类似的方法)。非常好的建议,我也在考虑选择器“div,p,span”,所以现在将一直使用到v3.1!顺便说一句,我喜欢图书馆!!