首页 > 解决方案 > 如何通过 C# Selenium 错误页面?

问题描述

我正在用c # selenium. (bot 的工作逻辑很简单,就是每个页面有20 家公司,他们回到详情页拿回数据。他们按顺序遍历所有公司。得到最后一家公司的数据后,他们继续下一页。)访问200-250家公司后,图片中的页面打开。机器人正在停止前进。如果我手动按下F5菜单,机器人会继续前进,但是当我们尝试使用代码时它不起作用。

如何解决此错误?

错误页面

我注意到它正在从该页面的详细信息页面返回。回去;

driver.navigate().Back();
driver.navigate().GoToUrl("");

//I tried to go back with the codes but the solution was not.

我收到此错误是因为错误页面未通过。

Bot 需要访问所有公司而不会遇到错误页面。

标签: c#webdriver

解决方案


一个正确的方法是等待一些你期望在页面上使用的元素的时间WebDriverWait。在此示例中,我等待 10 秒并查找元素 id 'some-id'。您可以通过替换By.Id("some-id")为其他一些条件来更改条件。

更多关于By

var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));

driver.Navigate().GoToUrl("https://www.somedomain.com");

var validPage = false;
try
{
    validPage = wait.Until(c =>
    {
        try
        {
            return driver.FindElement(By.Id("some-id")) != null;
        }
        catch
        {
            return false;
        }
    });
}
catch
{
    // not exist
}

if (validPage == true)
{
    // ok.
}
else
{

}

推荐阅读