如何通过vb.net/c#

时间:2018-08-27 09:48:52

标签: javascript c# vb.net selenium

使用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应该是传递的正确参数。

但这不起作用。

有什么建议吗?

0 个答案:

没有答案