2017-07-06 111 views
1

我無法使用下面的代碼選擇下拉選項。此代碼返回錯誤,因爲未找到元素。請協助。謝謝!!硒 - 選擇下拉菜單。無法定位元素

WebElement mySelectElement = driver.findElement(By.id("incident.severity")); 
    Select dropdown= new Select(mySelectElement); 
    dropdown.selectByVisibleText("3 - Medium"); 

異常在線程 「線程2」 org.openqa.selenium.NoSuchElementException:沒有這樣的元件:無法 定位元件:{ 「方法」: 「ID」, 「選擇器」:」 incident.severity「}

下面是下拉截圖和相應的代碼。

field screenshot

<div class="form-group " style="" id="element.incident.severity"> 
 
<div nowrap="true" data-type="label" id="label.incident.severity" 
 
     type="choice" choice="3" class="foreign"> 
 
<label dir="ltr" class=" col-xs-12 col-md-3 col-lg-4 control-label" 
 
     onclick="return labelClicked(this);" for="incident.severity"><span 
 
     id="status.incident.severity" title="" mandatory="false" aria-label="" 
 
    class=" label_description" oclass="" data-original-title=""></span> 
 
<span title="" class="label-text" data-html="false" data-original- 
 
title="">Severity</span></label></div> 
 
    
 
<div class="col-xs-10 col-sm-9 col-md-6 col-lg-5 form-field input_controls"> 
 
<input name="sys_original.incident.severity" 
 
     id="sys_original.incident.severity" type="hidden" value="4"> 
 
<select style="direction:ltr; " id="incident.severity" 
 
     onchange="onChange('incident.severity');" class="form-control" ng-non- 
 
     bindable="true" name="incident.severity" mandatory="false"> 
 
     <option value="1">1 - Critical</option> 
 
     <option value="2">2 - High</option> 
 
     <option value="3">3 - Medium</option> 
 
     <option value="4" selected="SELECTED">4 - Low</option> 
 
</select></div> 
 
     <div class="col-xs-2 col-sm-3 col-lg-2 form-field-addons"></div> 
 
    </div>

+0

哪種綁定? Java或Python或Ruby?謝謝 – DebanjanB

+0

我想使用使用Java的硒webdriver。 – Amresh

+0

可能的原因是你粘貼的HTML DOM是'type =「hidden」'。你必須有另一個選擇標籤。謝謝 – DebanjanB

回答

0

NoSuchElementException異常當司機無法找到該網頁的DOM的webelement發生

此類錯誤的原因之一是您的網頁未完全加載,並且您正在嘗試查找該網頁元素,請嘗試在搜索網頁元素之前等待某個時間。對於等待,您可以使用「隱式等待」

示例代碼:

//Initializing a WebDriverWait instance with a wait time of 30 seconds. 
WebDriverWait wait = new WebDriverWait(driver,30); 

//This code will wait till 30 seconds(Maximum) before throwing the exception. 
wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("incident.severity"))); 

WebElement mySelectElement = driver.findElement(By.name("incident.severity")); 

讓我知道,如果這有助於。

相關問題