Selenium WD |尝试使用带有逻辑'或'的'If'语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium WD |尝试使用带有逻辑'或'的'If'语句相关的知识,希望对你有一定的参考价值。

我的测试中有一步进入几个html页面并在屏幕上查找元素。该元素可以有2个不同的CSS类名,而在网站中看起来相同(从视觉上讲),我必须使用带有逻辑'或'的if语句来识别它们

if (Status == driver.findElement(By.cssSelector(".inlineblock.redClockBigIcon.middle.isOpenExchBig-2")) || Status == driver.findElement(By.cssSelector(".inlineblock.redClockBigIcon.middle.isOpenExchBig-1")));
System.out.println("Stock is closed");) 

我希望如果出现2个元素中的一个,那么Eclipse会

认识到它。好吧 - 出现了2中的第二个元素 - 由于某种原因,我有一个异常错误。 if语句只关注if中的第一个条件,而忽略了第二个条件。

org.openqa.selenium.NoSuchElementException:没有这样的元素:

locate元素:{“method”:“css selector”,“selector”:“。inlineblock.redClockBigIcon.middle.isOpenExchBig-2”}无法

我该如何制作||在这个'if'声明中工作?谢谢

Screenshots of the elements

答案

在你的逻辑上,你有Status这是一个已经存在的WebElement,你正在与你正在查找的另一个Webelement进行比较。我不认为这是你的意图所以我将在解决方案中做出一些假设。

第一:找到所需选择器可能存在的所有元素(注意我使用的是findElements而不是findElement

List<WebElement> clockIconThingies = driver.findElements(By.cssSelector(".inlineblock.redClockBigIcon.middle.isOpenExchBig-2, .inlineblock.redClockBigIcon.middle.isOpenExchBig-1"));

第二:检查是否发现了什么

if(clockIconThingies.size() > 0)
{
    System.out.println("Stock is closed");
}

或者对于你的css选择器,从图像看起来你可能不需要做或根本不需要像这样查找类redClockBigIcon

List<WebElement> clockIconThingies = driver.findElements(By.cssSelector(".redClockBigIcon"));
另一答案

您可以尝试使用try catch块:

boolean isFirstElemPresent = true;

try{       
      driver.findElement(By.cssSelector(".inlineblock.redClockBigIcon.middle.isOpenExchBig-1"));    
}catch (NoSuchElementException e){
    isFirstElemPresent = false;
}

if(isFirstElemPresent == false)
     driver.findElement(By.cssSelector(".inlineblock.redClockBigIcon.middle.isOpenExchBig-2"));

要么 要避免try catch阻止,请使用以下代码快照:

List<WebElement> elements = driver.findElements(By.className("redClockBigIcon"));   

if (elements.size() == 0) {
    System.out.println("Element is not present");
} else {
    System.out.println("Element is present");
}

以上是关于Selenium WD |尝试使用带有逻辑'或'的'If'语句的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Selenium WD 为不同的浏览器类型打开隐身/私人窗口?

Python Selenium

如何使用 Python 在 Selenium WD 中检查变量的值是不是为整数? [复制]

pythonGUI自动化:selenium定位元素方式及元素动作

第五篇 - Selenium突破反爬获取qq邮件标题

自动化测试-Selenium怎么测试不同版本的浏览器?(IE)