隐藏div时无法找到Element

时间:2016-08-25 15:50:49

标签: selenium

我在某些特定情况下遇到了一些困难。

如果没有错误,页面如下所示。

<script src="includes/js/errorHandling.js?v=5" type="text/javascript"/>
<div class="pmo_title">
<!--end pmo title-->
<div class="spacer2"/>
<div class="pmo-container">

但如果发生任何错误,则会显示其他div类。

<script src="includes/js/errorHandling.js?v=5" type="text/javascript"/>
<div class="pmo_title">
<!--end pmo title-->
<div class="pmo_warning">
<div class="pmo-container">
<span class="message_title">Errors :</span>
<!--display first item of list with no comma-->
<span id="fileError" class="error">File to Upload required</span>
</div>
</div>
<div class="spacer2"/>
<div class="pmo-container">

我想验证我是否上传了无效文件并显示错误抛出异常,否则继续。

我写了以下代码

@FindBy(xpath = "//div[@class='pmo_warning']")
private WebElement errorMessage;
if (errorMessage !=null ){
throw (new IOException("file not found"));

    }

return initialize(driver, FileUpload.class);

它会抛出有效和无效输入的异常

我也试过

@FindBy(xpath = "//div[@class='pmo_warning']")
private WebElement errorMessage;
if (errorMessage.IsDisplayed()){
throw (new IOException("file not found"));

    }

return initialize(driver, FileUpload.class);

对于没有错误的文件,它显示:

  

无法找到元素

2 个答案:

答案 0 :(得分:3)

driver.findElements(By.xpath(&#34; // div [@class =&#39; pmo_warning&#39;]&#34;))。size()!= 0

答案 1 :(得分:1)

您应该尝试使用WebElement来获取@FindAll(@FindBy(how = How.CSS, using = "div.pmo_warning")) List<WebElement> errorMessage; if (errorMessage.size() > 0 && errorMessage.get(0).isDisplayed()){ throw (new IOException("file not found")); } return initialize(driver, FileUpload.class); 的列表,并检查其大小如下: -

{{1}}