2012-10-17 46 views
1

我使用頁面工廠自動化,我想用下面的代碼:如何確定哪種類型的Web元素的(選擇框或文本)

@FindBy(how = How.XPATH, using = "//div[contains(text(),'sometext')]") 
private WebElement _selectBox1; 

但我不知道如何使用XPath對於這種情況,因爲這個web元素可能是選擇框,但有時這個web元素可能是文本。

元素在頁面上可以作爲選擇框(如果有的值可用於產品)

<div> 
<select id="id_2" class="selectBox" onchange="OnsSelectHandler(this,2)" style="display: none;"> 
<option value="">Click to select</option> 
<option value="3341">value 1</option> 
<option value="3342">value 2</option> 
</select> 
</div> 

如果數據庫不存在,該產品的數據,則顯示爲文本:

<div class="feature"> 
<span class="ynIco noIco"/> 
<strong>Not available</strong> 
</div> 

回答

1
@FindBy(how = How.XPATH, using = "//div[contains(text(),'sometext') or count(./select)=1]") 
private WebElement _selectBox1; 
+1

歡迎來到Stackoverflow,你做了什麼的一些解釋將是很好的! –

+0

這真是個好主意。 –

0

檢查文本框是否存在。

if(isElementPresent(By.cssSelector("div.feature > span"))) 
    { 
     If it is present, then no need to think about select box (Pick list values) 
    } 
    else 
    { 
     Do your operation with select box. 
    } 

對於isElementPresent()實現請參見this

+0

但是我想初始化變量前使用 –

相關問題