Javascript已完成,但浏览器未反映这些更改(ASYNC?)

时间:2015-10-25 20:35:23

标签: javascript c# chromium-embedded cefsharp

我正在使用CEF和CefSharp。 我有一个c#类,其目的是知道JS函数调用是否已完成,然后再次在curent元素xPath上调用JS

class test {
   //array of Xpaths of elements
   elementsXpaths 
   public IsDone(){
       LoadNext()
   }
   LoadNext(){
       call = string.Format("click('{0}')", elemenentsXpath[next])
       browser.ExecuteScriptAsync(call)
   }
} 

那么JS就是这样的

function click(xpath){
   elementFoundedByXPath.click()
   elementFoundedByXPath.style.backgroundColor = "#FF0000"
   test.isDone();
}

我的问题是,点击()后不会立即更改背景颜色。 所以例如我有一个元素,点击这个元素揭示一些其他元素(我点击显示登录按钮,点击后显示登录和密码输入)然后点击不失败,但我看不到登录名和密码输入。很奇怪。我猜这会失败,因为元素没有建立(我在JS中检查这个)。

我也在调试中检查这个,当我在LoadNext上有断点时,我可以看到调用LoadNext并且前一个元素的backgroundColor没有改变。

我认为如果我单击该元素,我可以确定实际执行了点击。

这是JS异步调用的问题吗? EvaluateScriptAsync()会帮助我吗?在那种情况下,有人向我展示了这两个函数之间的一些简单示例和区别吗?或者问题最有可能发生在其他地方?

0 个答案:

没有答案