我已经有很长一段时间了,到处都挖过,而且我的智慧结束了。解决方案似乎很简单:将一些javascript代码注入chrome浏览器以等待元素出现(浏览器已经完成加载而不等待元素,我的.net代码越过我要在页面上执行的自动化部分),然后继续。
然而,加注事件并没有像我想象的那样开火。这可能是由于我的javascript代码 - 或者我可能错过了其他地方的某些内容。
这是js代码:
private void InjectJsWait(string eventName, string selector, int time, string eventStage)
{
string script = @"function waitForElementToDisplay(##SELECTOR##, ##TIME##) {
if(document.querySelector(##SELECTOR##)!=null) {
window.boundEvent.raiseEvent('##EVENTNAME##', {eventStage: ##STAGE##});
return;
}
else {
setTimeout(function() {
waitForElementToDisplay(##SELECTOR##, ##TIME##);
}, ##TIME##);
}
}";
script = Regex.Replace(script, "##SELECTOR##", selector);
script = Regex.Replace(script, "##TIME##", time.ToString());
script = Regex.Replace(script, "##EVENTNAME##", eventName);
script = Regex.Replace(script, "##STAGE##", eventStage);
browser.ExecuteScriptAsync(script);
}
非常感谢任何帮助。
答案 0 :(得分:0)