2016-03-17 76 views
0
<button id="createDropdown" class="btn-create" tabindex="7"> 
<ul id="createDropdownUl" class="dropdown-create" style="display: block"> 
<li tabindex="8"> 
<button>BOOK MASTER SERVICE </button> 
</li> 
<li tabindex="9"> 
<button> CREATE SCHEDULE</button> 
</li> 
</ul> 
</div> 

我想選擇帶有文本「CREATE SCHEDULE」的按鈕。表達式的xpath是;什麼可能是以下HTML源代碼的CSS選擇器

//*[@id='createDropdownUl']/li[2]/button 

我試過下面的代碼。 ;

WebElement menuitem=driver.findElement(By.cssSelector("ul#createDropdownUl>li>button")); 

但它選擇兩個按鈕我只想通過CSS選擇器選擇第二個按鈕「CREATE SCHEDULE」。 。

+0

我正在作爲外部測試員工作。我無法要求開發團隊更改HTML代碼。是否仍然可以通過CSS選擇器獲取按鈕? – Asif

+0

你確定這是正確的HTML嗎?我看到按鈕結束標記在此處丟失,並且div的開始標記丟失 –

回答

-1

我認爲這將有助於爲您想要調用的按鈕分配一個ID,以便能夠單獨識別它們。

<button id="createDropdown" class="btn-create" tabindex="7"> 
    <ul id="createDropdownUl" class="dropdown-create" style="display: block"> 
    <li tabindex="8"> 
    <button>MASTER SERVICE BLOCK</button> 
    </li> 
    <li tabindex="9"> 
    <button id="MasterS">MASTER SCHEDULE</button> 
    </li> 
    </ul> 
    </div> 

然後

WebElement menuitem=driver.findElement(By.cssSelector("#MasterS")); 
+0

當您有ID時,您不需要那麼多的特定選擇器。一個ID就足以選擇按鈕 –

+1

你應該根據提供的html來回答問題。不要改變它以適應你的答案。 – Guy

+0

@Guy瞭解,thanx擡頭 –

-1

在標準的CSS,這將是:

button button 

但是你必須要小心,它也可以選擇3其他頁,第4等。

也就是說,標準css中只有類和id以及它們的層次級別(父/子)關係不像xpath那樣沒有標準規範。

+0

您是否建議我將我的CSS選擇器更新爲「ul#createDropdownUl> li>按鈕按鈕」「 – Asif

+0

您的答案似乎是包含代碼,請使用MarkDown語法進行相應的格式化 –

0

您可以通過它瞄準的元素在CSS屬性:

#createDropdownUl li[tabindex="9"] button 

或者使用nth-child(x)選擇器:

#createDropdownUl li:nth-child(9) button 

在CSS中沒有其他方法,除非您給它一個ID。

相關問題