繁体   English   中英

检查元素在 C# Selenium/ChromeDriver 应用程序中是否可交互?

Check if element is interactable in C# Selenium/ChromeDriver app?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

I have a C# Selenium app that uses the ChromeDriver/WebDriver NuGet package that supports Chrome 88. My Chrome version is 88.0.4324.104.

我正在使用的一些 web 页面有多个 BUTTON 元素,它们具有相同的classtagName所以当我使用我想要的Z3D788FA62D7C185A1BEE4C9147EE109执行FindDomElement()调用时,我会返回多个匹配的元素。 返回的元素中只有一个是可交互的,而其他的则不是。 现在,我尝试对每个元素执行“Click()”调用,直到找到正确的元素,为失败的元素捕获ElementNotInteractableException异常。

有没有办法询问 Selenium 元素是否可交互?

请注意,所有元素都是可见启用的,我已经知道如何通过 C# 检查这些属性的状态。 在这种情况下,它们根本没有帮助。

1 个回复

扩展方法在这里可能是更好的解决方案。 如果元素被单击,它将返回true ,如果元素不可交互,则返回false

public static class WebElementExtensions
{
    public static void TryClick(this IWebElement element)
    {
        try
        {
            element.Click();

            return true;
        }
        catch (ElementNotInteractableException)
        {
            return false;
        }
    }
}

那么它只是一个简单的测试:

if (button.TryClick())
{
    // Button was clicked successfully
}
else
{
    // Button is not interactable
}
1 WinForms应用程序中窗体之间的交互,C#

伙计们! 我在应用程序中有2种表单-工作表单(frmMain)和设置表单(frmSettings)。 frmSettings上有两个按钮-保存和取消。 在frmMain中,我使用以下方法来显示frmSettings: 问题是我不知道如何检测在frmMain上按下了哪个按钮-保存或取 ...

2 从 c# 应用程序与 python 交互

我想编写一个与 python 进程交互的 C# 应用程序。 请参阅下面的示例代码。 在启动 python 进程并写入其 StdIn 后,在 StdIn 流关闭之前什么也不会发生。 关闭时,执行通过 StdIn 提交的代码,然后关闭 python 进程。 如何让python执行通过StdIn提交的代码 ...

2021-07-27 19:11:34 1 32   python/ c#
3 C#检查MFC应用程序是否卡住的方法

我有一个用C#编写的看门狗应用程序,该应用程序使MFC进程保持运行。 我正在使用System.Diagnostics.Process类中的Exited事件来执行此操作: 其中LaunchAgain是应重新启动该过程的功能。 问题是有时MFC应用程序(当然是用C ++编写)陷入了熟 ...

2014-10-14 11:59:36 0 240   c#/ mfc
6 如何在 c# 中检查用户是否访问了 Windows 服务应用程序中的某个 web url?

我一直在尝试寻找一种方法来检查用户是否访问了一个 url(即使它不存在),例如http://127.0.0.1/apage并且每当他们访问这个时,一个带有 html 的页面将显示在网络浏览器中. 我更想知道您如何检查他们是否访问过。 我已经尝试谷歌我的解决方案很多天了,但不幸的是没有运气。 这是我 ...

7 如何制作可在C#应用程序中使用的CUDA DLL?

如果你能给我一个简短的教程而不是几句话,那将是件好事。 我的CUDA应用程序正在按我的意愿工作。 现在,问题是如何将CUDA代码导出到C#,因为我想在C#中创建前端和其他所有内容。 从这个链接: http://www.codeproject.com/Articles/9826 ...

9 检查下载URL是否可在C#中访问?

我需要检查一个URL是否可访问,尽管该URL是直接下载到exe的。 我想知道在检查正常URL是否在线且可访问时是否使用相同的主体,还是必须通过下载链接检查其他内容? 我需要在C#中执行此操作,但是我不确定从哪里开始,因为它是下载URL。 ...

2017-10-31 17:49:57 0 44   c#
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM