等待DOM元素出现/可见

问题描述 投票:0回答:1

我有一个非常简单的要求来加载网页,等到它完成加载后,再等待一个元素出现/可见(这只发生在页面表示已完成加载的after之后)对页面进行其他操作。

我曾尝试使用WebBrowser控件,但是努力寻找一种等待元素的方法。

我看过使用CefSharp的情况,但有人告诉我唯一的方法是注入js,我不太想这样做。

[我也看过Selenium WebDriver,WebDriverWait似乎完全可以实现我想要的功能,但是实际上它不是控件,不能被隐藏并且需要安装浏览器这一事实对我来说是不行的。] >

是否有做到这一点的方法而不涉及在WebBrowser,CefSharp或我尚未提及的任何其他项目中使用Thread.Sleep

EDIT

:一些额外的信息...

我正在将此用于网络自动化。在此特定情况下,登录网站(我不存储密码,不用担心)。

有问题的特定网站在用户级别支持不同的身份验证方法,因此在输入用户名后,它运行一个js脚本,该脚本确定是随后询问密码还是诸如电话身份验证,智能卡身份验证之类的内容。js脚本不会触发DocumentCompleted事件,这是我目前正在努力解决的问题。

这个想法是,如果它要求智能卡或电话验证始终保持.Visible = false的形式/控件,并且如果用户设置了用户名/密码验证,则只显示它。

因此,根据我自动输入用户名后发生的情况,它会要求输入密码,智能卡或电话验证,我需要等待DOM更改,以便使这三个元素之一可见,因此我知道该怎么做。做。

我不喜欢Selenium,因为它涉及到用户必须安装浏览器,很难/不可能将其隐藏起来,它不是我可以放置在表单上的实际控件,等等。

我有一个非常简单的要求,即加载网页,等到完成加载后,再等待元素显示/可见(这仅在页面发出信号后才发生...

c# .net selenium webbrowser-control cefsharp
1个回答
0
投票
我知道这已经很老了,但我想我会添加一个答案,以防有人碰到。
© www.soinside.com 2019 - 2024. All rights reserved.