使用Selenium,我在查找webElement时没有问题。 但是有时,浏览器无法加载脚本,或者有时,我尝试获取当前隐藏的webElement,而不在Try Catch块中执行尝试,并尝试评估异常。
我想测试使用javaScriptExecutor获取webElement是否可以正确获取它。
在此链接https://selenium-automation-help.blogspot.com/2017/08/practical-scenarios-of.html上,我找到了一些很好的例子。
但是我不知道javascript,我需要帮助。 这是我的代码。
Public Sub test(ByVal driver As OpenQA.Selenium.IWebDriver)
Dim MyWebElement As Object 'OpenQA.Selenium.IWebElement
Dim js As OpenQA.Selenium.IJavaScriptExecutor = CType(driver, OpenQA.Selenium.IJavaScriptExecutor)
' xPath = //*[@id='element-container']/div/div/div[2]/div/div/div/div/div/hq-include[2]
MyWebElement = js.ExecuteScript("var value = arguments[0].evaluate(\'//*[@id='element-container']/div/div/div[2]/div/div/div/div/div/hq-include[2]',arguments[0], null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ).singleNodeValue; return value;", driver.PageSource)
End Sub
关于javascript,从其xPath获取对象,如此处Selecting element from DOM with JavaScript and XPath
所述我应该正确定义参数以传递Document.evalutate方法
https://developer.mozilla.org/en-US/docs/Web/API/Document/evaluate
关于vb.net/c# Selenium / javaScriptExecutor集成,我应该正确定义参数以传递javaScriptExecutor.ExecuteScript方法。
正如此处Is there a way to get element by XPath using JavaScript in Selenium WebDriver?
所述我认为Driver.PageSource应该是传递的正确参数。
但这不起作用。
有什么建议吗?