2017-10-10 24 views
-1

我正在使用Cn中的Selenium(ChromeDriver)使用NUnit進行測試,並在此處遇到障礙。我們有一張表格,可根據該帳戶啓用的內容動態加載各種產品。 我試圖圍繞它編寫測試來訂購每個單獨的產品,但我有一個標記爲選中框的障礙。該表僅使用一個數字ID和一個用於產品名稱的單獨列(請參閱下面的HTML代碼)。使用Selenium C中同一表中另一列中的值檢查一列中的方框#

有一個隱藏的字段,其中包含產品名稱,但我曾被告知,硒只有在看不到它時才能看到。

任何幫助或想法對我來說都是一個很好的開始。

<td align="center" valign="top"> 
    <input id="reports11.selected1" name="reports[11].selected" onclick="javascript:doCheckbox(11, false)" style="margin-top:5px" type="checkbox" value="true"> 
    <input type="hidden" name="_reports[11].selected" value="on"> 
    <input id="reports11.productClassId" name="reports[11].productClassId" type="hidden" value="1"> 
    <input id="reports11.productId" name="reports[11].productId" type="hidden" value="99599"> 
    <input id="reports11.name" name="reports[11].name" type="hidden" value="Product Build - TEST"> 
</td> 

<td align="center" valign="top"> 
    <select id="reports11.priority" name="reports[11].priority" style="width:40px;padding:1px;margin: 0 0 0 0" onchange="javascript:doPriority(11)"> 
     <option value="0" selected="selected">--</option> 
    </select> 
</td> 

<td valign="top"> 
    Product Build - TEST 
</td> 

+0

如果您只是需要隱藏字段的值,它應該很容易。首先使用一些GetElementBy方法獲取IWebElement,然後在獲得的IWebElement上調用GetAttribute(「value」),然後可以使用Selenium helper進行select => SelectElement及其SelectByValue方法。 – Bobo

+0

你的代碼在哪裏嘗試?您引用「請參閱下面的代碼」,但沒有。您需要更具體地瞭解您正在嘗試做什麼以及哪些不起作用。你引用「標記一個框被檢查」,但你沒有說明哪一個...有5個輸入和一個選擇。 「產品構建 - 測試」應該是產品名稱嗎?你有一個很好的HTML示例...現在在你的問題中添加對該HTML的引用來清除你的問題。 – JeffC

+0

@JeffC對不起,打錯了。基本上,在HTML表格中,有一個複選框,我可以使用Selenium通過自動化進行檢查(有50個產品帶有複選框)。我試圖做的是僅檢查其中一個複選框,該複選框基於 Product Build - TEST line中顯示的產品名稱。當我嘗試這個時,Selenium在Reports(X)更改時無法看到上述區域中的複選框。 – user1666884

回答

0

下面的代碼假設在第1列中的複選框,並在第3列中的產品名稱。

public void chooseProductbyName(productName) 
{ 
string xpath = "//tr[td[3][text()='"+productName+"']]/td[1]/input[@type='checkbox']"; 
driver.findElement(by.xpath(xpath)).click(); 
} 
+0

謝謝!我無法用頭部動態生成列表表達我的腦袋。 – user1666884

相關問題