gpt4 book ai didi

c# - Selenium 2 WebDriver 未按预期评估更新的 DOM

转载 作者:行者123 更新时间:2023-11-29 22:21:42 25 4
gpt4 key购买 nike

我在 C# 中使用 Selenium 2 WebDriver 来自动化输入页面。加载 DOM 时,有一个隐藏的验证摘要控件。这是它在额外负载下的样子。

<div id='validation_summary' style='display: none'>
<div id='validation_message'/>

当我的 pageObject 在 Selenium 中初始化时,WebElement 的 Displayed 属性设置为“false”。这是我所期望的。

单击提交按钮后,dom 更改为:

<div id='validation_summary' style='display: block'>
<div id='validation_message'>
<div><a>Fix Me</a></div>
</div>

当我尝试以下列方式访问 WebElement 时,在发出单击验证后,Displayed 属性仍然为“false”并且附加的 div 不可见:

var validation = new WebDriverWait(_driver, TimeSpan.FromSeconds(10)).Until<IWebElement>((d)=>d.FindElement(By.Id('validation_message'));

这真的有用吗?我是否应该期望 Selenium 足够聪明以评估当前状态下的 DOM?它实际上如何评估元素的 Displayed 属性?如果查看 PageSource 属性,我会看到文本存在。我不明白为什么我没有看到 Selenium 反射(reflect)我的更改。

最佳答案

试试这个:

var scripter = driver as JavaScriptExecutor;

var result = scripter.ExecuteScript("return $('#validation_message').is(':hidden');").ToString();
if (result.ToLower().Equals("true"))
{
//Do your stuff
}

并且不要羞于使用 javaScript。以我的拙见,Selenium 仍然没有足够的工具,因此您可以仅使用 javaScript 实现自己的工具。

关于c# - Selenium 2 WebDriver 未按预期评估更新的 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12101642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com