我正在努力用我需要的方法。这就是我想要做的事情:
这是我正在尝试的
第1步:
导航到网页(从内存中编写代码):
driver.Navigate().GoToUrl("http://example.com");
第2步:
从特定元素中查找样式(从内存中编写代码)
Iwebelement MyElement = driver.findElement(By.id("example"));
Iwebelement MyElementStyle = MyElement.GetAttribute("style");
第3步:
如果元素的样式为“hidden:true;”在页面加载然后执行任何其他操作页面刷新,直到该元素不包含“hidden:true;”样式(从内存中编写代码)
if(MyElementStyle.Contains("hidden: true;"))
{
// do nothing
}
else
{
driver.Navigate().GoToUrl("http://example.com");
}
这似乎有效,但上面的代码只会刷新页面一次,所以我需要循环而不是使用if语句。
是否有人能够提供一些指示或建议更好的方法来解决这个问题?
答案 0 :(得分:1)
我不确定你使用的语言绑定是什么,但看起来像是C#和java的混合物,如果它是真正的测试代码,那么它将不起作用。
使用do while
循环进行检查并检查属性是否具有预期值。
IWebElement MyElement = Driver.FindElement(By.Id("example"));
string MyElementStyle = MyElement.GetAttribute("style");
do
{
Driver.Navigate().Refresh();
} while (MyElementStyle.Contains("hidden: true;"));