有没有一种方法可以刷新页面,直到屏幕上的某个元素存在?仅提供类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有一种方法可以刷新页面,直到屏幕上的某个元素存在?仅提供类相关的知识,希望对你有一定的参考价值。
我正在使用C#和Selenium来实现浏览器自动化,并希望刷新页面,直到存在与给定字符串匹配的元素。我该怎么办?
<a class="name-link" href="/shop/sweatshirts/tymdtrivq/wbisud8yv">Breed Crewneck</a>
这是元素的外观。我希望页面刷新,直到页面上出现文本“ Breed Crewneck”(然后当然要单击该项目)为止。但是,我无权访问名称,ID或链接文本。此外,我无法使用XPath,因为它与关键字“ Breed Crewneck”没有关系。我相信可以通过实现javascript来解决,但在这个前景方面我还没有走得太远。
EDIT-上一个。由于误解,删除了该编辑。抱歉。
编辑2
bool elementFound = false;
do
driver.Navigate().Refresh();
try
driver.FindElement(By.LinkText("Breed Crewneck"));
elementFound = true;
catch(NoSuchElementException error)
Console.WriteLine("No such element found!");
while (elementFound == false);
以上代码似乎有效。干杯!
答案
这里有一些C#代码来刷新页面,直到元素包含您要查找的文本为止。
var wait = new WebDriverWait(Driver, 10000);
while (driver.FindElement(By.XPath("//a[@class=‘name-link’]")).Text != “Breed Crewneck”)
driver.Navigate().Refresh();
wait.Until(ExpectedConditions.ElementIsVisible(By.XPath(“//a[@class=‘name-link’]”)));
另一答案
bool elementFound = false;
do
driver.Navigate().Refresh();
try
driver.FindElement(By.LinkText("Breed Crewneck"));
elementFound = true;
catch(NoSuchElementException error)
Console.WriteLine("No such element found!");
while (elementFound == false);
以上是关于有没有一种方法可以刷新页面,直到屏幕上的某个元素存在?仅提供类的主要内容,如果未能解决你的问题,请参考以下文章