2017-10-10 4 views
-1

で同じテーブルの別の列の値を使用して1つの列のボックスを検査しています。テストにNUnitを使用してC#でSelenium(ChromeDriver)で作業しています。そのアカウントで有効になっているものに基づいてさまざまな製品を動的に読み込むテーブルがあります。 私は個々の製品を注文するためにそれを中心にテストを書こうとしていますが、チェックボックスにチェックをつけて困っています。この表では、商品名に使用される別の列の数値IDが使用されます(下の「HTMLコード」を参照)。Selenium C#

商品名を含む非表示フィールドがありますが、過去にSeleniumが表示されていないと表示されていないと言われました。

これを解決するための助けやアイデアが私にとって素晴らしいスタートになります。コードの下

<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")を呼び出し、select => SelectElementおよびそのSelectByValueメソッドに対してSeleniumヘルパを使用できます。 – Bobo

+0

コードの試行はどこですか?あなたは "See Code Below"を参照していますが、何もありません。あなたは何をしようとしているのか、何が動いていないのか、さらに具体的にする必要があります。あなたは "チェックボックスをマークする"を参照していますが、あなたは5つのINPUTとSELECTがあります。 "製品ビルド - テスト"は製品名であると考えられていますか?あなたは良い例のHTMLを持っています...あなたの質問をクリアするためにあなたの質問にそのHTMLへの参照を追加するようになりました。 – JeffC

+0

@JeffC申し訳ありませんが、誤植しました。基本的にHTMLテーブルには、Seleniumを使用してオートメーションを介してチェックすることができるチェックボックスがあります(チェックボックス付きの50個の製品があります)。私がしようとしているのは、製品ビルド - TEST行に表示されている製品名に基づいて、チェックボックスの1つだけをチェックすることです。私はこれを試してみると、レポート(X)の変更に応じて上記の領域のチェックボックスが表示されません。 – user1666884

答えて

0

第3列の1列目および製品名にあるチェックボックスを想定しています。

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

ありがとう!私はちょうど動的に生成されたリストテーブルでこれを行う方法の周りに私の頭を包むことができませんでした。 – user1666884

関連する問題