Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';无法获取按钮属性的句柄。Can';无法从页面源中找到它_C#_Selenium_Selenium Webdriver_Webdriver - Fatal编程技术网

C# Can';无法获取按钮属性的句柄。Can';无法从页面源中找到它

C# Can';无法获取按钮属性的句柄。Can';无法从页面源中找到它,c#,selenium,selenium-webdriver,webdriver,C#,Selenium,Selenium Webdriver,Webdriver,我在获取按钮的句柄时遇到了一些问题,尤其是特定的按钮属性。基本上,我的页面上有两个按钮。我需要验证的按钮具有“disabled”属性。我的问题是,我似乎无法处理它——它几乎好像不在那里,但它显然在我的网页源代码中。下面是两个按钮的代码 <button type="button" class="btn-number" data-type="yes" data-field="quant" disabled="disabled"><i class="fht-yes"></

我在获取按钮的句柄时遇到了一些问题,尤其是特定的按钮属性。基本上,我的页面上有两个按钮。我需要验证的按钮具有“disabled”属性。我的问题是,我似乎无法处理它——它几乎好像不在那里,但它显然在我的网页源代码中。下面是两个按钮的代码

<button type="button" class="btn-number" data-type="yes" data-field="quant" disabled="disabled"><i class="fht-yes"></i></button>
<a href="#"> Choose flight </a>
<button type="button" class="btn-number" data-type="no" data-field="quant"><i class="fht-no"></i></button>
</div></div>    
</div>
当我运行此命令时,我会得到以下调试跟踪:

调试跟踪:

<button type="button" class="btn-number" data-type="yes" data-field="quant"><i class="fht-yes""></i></button>
<button type="button" class="btn-number" data-type="yes" data-field="quant"><i class="fht-yes""></i></button>
同样,我会收到相同的调试跟踪:

调试跟踪:

<button type="button" class="btn-number" data-type="yes" data-field="quant"><i class="fht-yes""></i></button>
<button type="button" class="btn-number" data-type="yes" data-field="quant"><i class="fht-yes""></i></button>
值得指出的另一个注意事项是,按钮始终处于启用状态。当我在按钮上使用“locals”调试工具时,它总是有一个“enabled”属性,因此我也不能使用.getAttribute(“disabled”)方法来验证它


有人有什么想法吗?:)非常感谢您在这方面提供的帮助

您只需将XPath表达式修改为按禁用属性选择即可

this.FindElement(By.XPath("//*[@id='box']/div/div[1]/div/button[@disabled='disabled']"));
应该可以获得设置了禁用属性的按钮

this.FindElement(By.XPath("//*[@id='box']/div/div[1]/div/button[not(@disabled='disabled')]"));
应该会得到不包含禁用属性的按钮


当然,假设原始XPath表达式的其余部分是正确的…

runat=“server”
您对它熟悉吗?一点也不熟悉,但会仔细阅读它-谢谢您的XPath严重依赖于位置,它可能选错了位置。给元素一个ID或以“更好”的方式找到它。
this.FindElement(By.XPath("//*[@id='box']/div/div[1]/div/button[not(@disabled='disabled')]"));