我正在使用最新版本的 Selenium 和chromedriver
测试 ZK 应用程序。
在测试期间,我想转储 DOM(或其中的一部分)以帮助我找到所需的元素(并且可能帮助必须维护测试的人)。
方法WebDriver.getPageSource()
看起来很有希望,但它只返回服务器发送的 HTML,而不是运行所有 JavaScript 代码后的结果。
JavaScript 代码被运行;我可以通过 ID 找到在输出中看不到的元素getPageSource()
。所以我尝试了WebElement.getText()
但这只是元素的文本,而不是元素本身或其属性。
是否有可能获得 DOM 还是我必须在这里进行锁孔手术?
我确实有同样的问题,但我发现做到这一点的唯一方法是 ExecuteScript:
/// <summary>
/// Gets the parentElement/Node of a particular element
/// </summary>
/// <param name="driver"></param>
/// <param name="element"></param>
/// <returns></returns>
public static IWebElement GetElementParent(IWebDriver driver,IWebElement element)
{
return (IWebElement) ((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].parentNode", element);
}
为什么 By 不支持 By.DOM 的功能我真的不知道......我怀疑这是因为需要多个浏览器的网络驱动程序等
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)