为什么Selenium Webdriver冻结Windows窗体应用程序?

时间:2019-03-02 11:49:28

标签: c# winforms selenium selenium-webdriver selenium-chromedriver

任何人都可以帮助我解决这个问题。我什至在Google上搜索了它,但什么也没找到。我已经制作了Windows表格应用程序,用于抓取一些数据。问题是,当我单击按钮时,脚本以无头模式启动并且我正在使用Chrome Web驱动程序。然后,它在某种程度上冻结了应用程序,以至于在运行脚本时不允许我们使用应用程序上的其他按钮。

  

有任何解决方案,或者我可以提供的任何其他框架或东西   干嘛?

2 个答案:

答案 0 :(得分:2)

这与您的应用程序是单线程的事实有关。意味着它执行的所有代码都在单个线程上运行。因此,当用户更改UI状态时,您将无法执行某些工作,反之亦然。

一个好的解决方案是在不是您的应用程序用于UI的线程上运行“硒脚本”(或触发它的例程)。

您可以通过某些方式实现这一目标:

请始终记住,默认执行线程(在Windows窗体中)是使UI和应用程序保持活动状态的线程。

答案 1 :(得分:0)

将实际工作放入后台任务中,而不放入按钮的单击处理程序中。