我想检查Selenium中是否存在一个元素,如果存在,请将其分配给一个名称。
现在,我有这样的东西:
IWebElement size9 = driver.FindElement(By.CssSelector("a[data-value*='09.0']"));
但是,当不存在值为9的元素时,它将返回错误。有没有一种方法可以检查它是否存在,或者类似的东西?
有几种选择。我推荐这些。
1.创建方法或Web驱动程序扩展。
public static IWebElement FindElementIfExists(this IWebDriver driver, By by)
{
var elements = driver.FindElements(by);
return (elements.Count >=1) ? elements.First() : null;
}
// Usage
var element = driver.FindElementIfExists(By.CssSelector("a[data-value*='09.0']"));
2.计算元素,如果有1个或更多元素,则获取它。
By by = By.CssSelector("a[data-value*='09.0']");
var element = driver.FindElements(by).Count >= 1 ? driver.FindElement(by) : null;
那你可以检查 if(element != null) { ... }
问题内容: 我有一个问题-我正在使用Selenium(firefox)Web驱动程序打开网页,单击一些链接等,然后捕获屏幕截图。 我的脚本可以从CLI正常运行,但是通过cronjob运行时,它并没有通过第一个find_element()测试。我需要添加一些调试,或一些帮助我弄清为什么失败的东西。 基本上,我必须先单击“登录”锚点,然后才能进入登录页面。元素的构造为: 我正在通过LINK_TEXT方
问题内容: 我正在尝试通过查找元素 在Python中,selenium并不总是存在。是否有一条快速的线检查它是否存在,并在不存在时显示NULL或FALSE代替错误消息? 问题答案: 您可以按以下方式实现/ 阻止以检查元素是否存在: 或使用其中一种方法进行检查。它应该返回空列表或与传递的选择器匹配的元素列表,但如果没有找到元素,也不例外:
问题内容: 我试图在执行此行之前检查元素是否存在: 如果id 在文档中不存在,甚至在-block中,都会引发错误“ no such element” 。我找到了Java的答案,您可以在其中检查大小是否为0,但是在node-js中,这会在我检查大小之前引发错误。 问题答案: 您可以利用的可选错误处理程序参数。 我在文档中找不到明确声明的内容,但是通过模块源代码中的函数定义确定了这一点:
我是的新手,需要检查元素是否可以在中单击,因为在和上都传递。 我尝试使用以下代码,但不起作用:
问题内容: 在实时自动化中,在对每个元素执行某些操作之前,我们是否要检查每个元素的存在? 无论哪里有声明,都有机会出现 NoSuchElementException 。我的问题是我们是否每次都要检查元素的存在? 是否每个语句都必须用块包围? 问题答案: 您可能会发现使用AbstractWebDriverEventListener类特别有用。此类实现WebDriverEventListener接口,
问题内容: 如果该元素是通过方法创建的,如何检查该元素是否存在? 对我不起作用。 问题答案: 对我不起作用。 您需要在元素ID之前添加: 使用香草JavaScript,不需要例如hash(),但是使用jQuery时,确实需要像基于CSS一样将哈希放入目标元素。