2017-10-10 22 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

相关问题