www.91084.com

GVKun编程网logo

使用Selenium WebDriver测试元素是否存在?(selenium 获取元素属性)

17

想了解使用SeleniumWebDriver测试元素是否存在?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于selenium获取元素属性的相关问题,此外,我们还将为您介绍关于ajax–Se

想了解使用Selenium WebDriver测试元素是否存在?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于selenium 获取元素属性的相关问题,此外,我们还将为您介绍关于ajax – Selenium WebDriver – 确定元素是否可点击(即不被dojo模态灯箱遮盖)、c# – 使用Selenium Webdriver测试元素是否聚焦、css – 如何使用Selenium WebDriver,Java按文本选择Web元素、Java使用Selenium WebDriver测试元素是否存在?的新知识。

本文目录一览:

使用Selenium WebDriver测试元素是否存在?(selenium 获取元素属性)

使用Selenium WebDriver测试元素是否存在?(selenium 获取元素属性)

有没有一种方法可以测试元素是否存在?任何findElement方法都将以异常结尾,但这不是我想要的,因为它可能是一个元素不存在并且没关系,这不是测试失败,因此异常不能成为解决方案。

我发现了这篇文章:Seleniumc#Webdriver:等待元素出现,但这是针对C#的,我不是很擅长。谁能将代码翻译成Java?抱歉,我在Eclipse中进行了尝试,但我没有将其正确地插入Java代码中。

这是代码:

public static class WebDriverExtensions{    public static IWebElement FindElement(this IWebDriver driver, By by, int timeoutInSeconds){        if (timeoutInSeconds > 0){            var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(timeoutInSeconds));            return wait.Until(drv => drv.FindElement(by));        }        return driver.FindElement(by);    }}

答案1

小编典典

使用findElements代替findElement

findElements 如果没有找到匹配的元素,则返回一个空列表,而不是一个异常。

要检查是否存在某个元素,可以尝试执行此操作

Boolean isPresent = driver.findElements(By.yourLocator).size() > 0

如果找到至少一个元素,则返回true;如果不存在,则返回false。

官方文档推荐此方法:

findElement不应用于查找不存在的元素,而应使用findElements(By)并声明零长度响应。

ajax – Selenium WebDriver – 确定元素是否可点击(即不被dojo模态灯箱遮盖)

ajax – Selenium WebDriver – 确定元素是否可点击(即不被dojo模态灯箱遮盖)

我编写自动脚本来测试在ajax上非常重的Web应用程序.例如,当保存设置时,将显示一个模态对话框,其中包含文本“保存…”,而灯箱会灰化页面的其余部分.

我的测试脚本尝试在消息消失之前单击测试中的下一个链接. Firefox几乎总是可以工作,但是当Chrome浏览器显示以下错误时:

Exception in thread "main" org.openqa.selenium.WebDriverException: Element is not clickable at point (99.5,118.5). Other element would receive the click: <divdojoattachpoint="node" id="lfn10Dijit_freedom_widget_common_environment_Dialog_8_underlay"></div> (WARNING: The server did not provide any stacktrace information)

这是因为灯箱遮蔽了我想要点击的元素.尝试点击链接之前,我想等待灯箱消失.

检查灯箱不再存在是不是一个有效的解决方法,因为有时有多个级别的模态对话框和灯箱,并没有简单的方法来区分它们.

在Selenium中有没有办法检测元素是否可点击(没有其他元素模糊)?一个try / catch将是一个解决方法,但我宁愿做一个适当的检查,如果这是可能的.

使用webdriverwait条件.
webdriverwait wait = new webdriverwait(yourWebDriver,5);
    wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//xpath_to_element")));

Webdriver将等待5秒钟,使您的元素能够被点击.

c# – 使用Selenium Webdriver测试元素是否聚焦

c# – 使用Selenium Webdriver测试元素是否聚焦

我真的很惊讶,我找不到互联网上的参考,使用Selenium Webdriver来测试元素焦点.

我想检查什么时候尝试提交表单,强制字段错过,焦点移动到空字段.但是,我看不到任何使用WebDriver API的方法.

我将能够使用一个JavascriptExecutor找到关注的元素.但阅读FAQ使我认为必须有一些方法来执行检查使用驱动程序本身.

感谢任何帮助.

解决方法

driver.switchTo().activeElement()将返回当前关注的WebElement.对于WebElement来说,平等是很好的定义的,所以你可以调用element.equals(driver.switchTo().activeElement()).

调用稍微误导的命名的driver.switchTo().activeElement()实际上并不切换焦点,也不是driver.findElement(),所以你不需要switchTo().defaultContent()之后;其实这样做可能会模糊现在的元素.

css – 如何使用Selenium WebDriver,Java按文本选择Web元素

css – 如何使用Selenium WebDriver,Java按文本选择Web元素

我需要在网页上找到以下元素
<div>noreply@somedomain.com</div>

我正在使用Java编写Selenium WebDriver.
需要这个元素的确切CSS选择器才能将它与driver.findElement(By.cssSelector(the-selector).click命令一起使用.
div [class =’b-datalist__item__addr’]选择器不够好,因为我必须根据noreply@somedomain.com搜索不是链接的文本,所以我不能使用findElement(By.linkText())命令.

解决方法

Css不允许您进行基于文本的搜索. xpath是唯一的选择.
//div[contains(text(),'noreply@somedomain.com')]

Java使用Selenium WebDriver测试元素是否存在?

Java使用Selenium WebDriver测试元素是否存在?

如何解决Java使用Selenium WebDriver测试元素是否存在??

使用findElements代替findElement

findElements 如果找不到匹配的元素,则返回一个空列表,而不是一个异常。

要检查是否存在某个元素,可以尝试执行此操作

Boolean isPresent = driver.findElements(By.yourLocator).size() > 0

如果找到至少一个元素,则返回true;否则,返回false。

解决方法

有没有一种方法可以测试元素是否存在?任何findElement方法都将以异常结尾,但这不是我想要的,因为它可能是某个元素不存在并且没关系,这不是测试失败,因此异常不能成为解决方案。

我发现了这篇文章:Selenium c#Webdriver:等待元素出现, 但这是针对C#的,我不是很擅长。谁能将代码翻译成Java?抱歉,我在Eclipse中进行了尝试,但我没有将其正确地插入Java代码中。

这是代码:

public static class WebDriverExtensions{
    public static IWebElement FindElement(this IWebDriver driver,By by,int timeoutInSeconds){

        if (timeoutInSeconds > 0){
            var wait = new WebDriverWait(driver,TimeSpan.FromSeconds(timeoutInSeconds));
            return wait.Until(drv => drv.FindElement(by));
        }

        return driver.FindElement(by);
    }
}

今天关于使用Selenium WebDriver测试元素是否存在?selenium 获取元素属性的讲解已经结束,谢谢您的阅读,如果想了解更多关于ajax – Selenium WebDriver – 确定元素是否可点击(即不被dojo模态灯箱遮盖)、c# – 使用Selenium Webdriver测试元素是否聚焦、css – 如何使用Selenium WebDriver,Java按文本选择Web元素、Java使用Selenium WebDriver测试元素是否存在?的相关知识,请在本站搜索。

本文标签: