c# - 如何通过 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 需要访问所有公司而不会遇到错误页面。
解决方案
一个正确的方法是等待一些你期望在页面上使用的元素的时间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
{
}
推荐阅读
- python - 使用 pandas 将日期时间从 excel 转换为 mysql
- python - Pandas Groupby 缺失行
- python-3.x - 如何将日期时间列表的内容相乘
- django - Django,缓存端点是什么意思?
- ios - 如果项目中没有显示特定行,我无法理解 Swift 的崩溃日志
- rust - 用 enum_dispatch 替换 trait 实现者的模式匹配
- python - Matplotlib 颜色归一化
- r - 使用多个解码器数据帧重新编码数据集 r
- powershell - 使用powershell在文件末尾添加多行
- ios - 为什么有时从 DISpatchQueue 调用时出现 EXC_BAD_ACCESS?