c#调用Selenium的一点小问题,还请高手解答一二

lq861234 2017-05-12 04:42:32
需要对火狐浏览器填表操作像IE那样,查了一些资料我选择了较为方便的Selenium3.3,,,,但是在调试环境中需要用到国外代理,,但是这里就有一个小问题,,代理速度无法控制有好有坏。。。

string ua = Static.GetRandomUA();
IWebDriver Driver = FirefoxHelper.GetFirefoxDriver(ua);
if (Driver == null)
{
return ;
}
string url = Static.GetRandomUrl();
Driver.Navigate().GoToUrl(url);
Driver.Manage().Window.Maximize();


使用Selenium加载网址它有一个阻塞,要等火狐完全打开,因为代理原因,,火狐连接一些资源要花很久,页面元素其实已经加载完了可以操作,,但是非要等加载完成,然后我又设了全局超时最后就抛超时异常了。。单方面设置更大的超时其实也不靠谱,因为我有几次发现一报超时异常再看网页左下角的状态已经加载完成,,不知道是不是有关系

我想问的是可否让Selenium加载时不要阻塞,我直接判断元素状态是否可操作,这样傻等不是办法,如果火狐可以配置加载一些资源花了多少时间获取不到就直接放弃跳过也可以,,,最后是否有根据我的情况更好的操作火狐类库的选择
...全文
345 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_46461281 2020-03-30
  • 打赏
  • 举报
回复
IJavaScriptExecutor js = (IJavaScriptExecutor)webDriver;
js.ExecuteScript("window.stop();");
这样可以停止加载页面,并且不会报错
lq861234 2017-05-15
  • 打赏
  • 举报
回复
没有高手知道吗
lq861234 2017-05-12
  • 打赏
  • 举报
回复
大兄弟我会不知道异步吗,,,不知道是我说得不清楚,还是你理解错了,,因为代理慢的问题加载页面会很久,,如果不加载完selenium是无法定位元素的,,,就算再异步也是要等这么久,,,而我的意思是说可否让selenium不去监管页面的加载情况,,,就直接解析元素对象,,由我自己写代码去判断是不是要继续操作,,或者有什么让火狐对很长时间的加载直接跳过,,,,不过还是谢谢你的回答
打老虎zz 2017-05-12
  • 打赏
  • 举报
回复
百度 C#~异步编程?

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧