我正在尝试找到选项值“选择帐户”。页面后面的Html代码是:
<tbody>
<tr class="alt first">
<tr>
<td height="30">
<select id="pkitem" name="pkitem" size="1" class="selectfont" onchange="multipickvalue(document.formMain.pkitem,document.formMain.listdata);document.formMain.listmodified.value=1;">
<option value="">--- Select Account---</option>
<option value="**COPY" size="small">*PRIVATE AND CONFIDENTIAL* CON (**COPY) </option>
<option value="ALDWYCH" size="small">*PRIVATE AND CONFIDENTIAL* CON (ALDWYCH)</option>
<option value="56456465456456456" size="small">12345 (56456465456456456)</option>
<option value="12345" size="small">123456 (12345)</option>
<option value="2SISTERGRP" size="small">2 SISTERS FOOD GROUP (2SISTERGRP)</option>
<option value="402SIST12" size="small">2 SISTERS FOOD GROUP (402SIST12)</option>
我正在使用的C#代码是:
var SelectAcc1 = Driver.Instance.FindElement(By.Id("pkitem"));
var SelectElement = new SelectElement(SelectAcc1);
SelectElement.SelectByText(SelectAcc);
无法找到字段名称。有人可以帮忙。
答案 0 :(得分:0)
首先,我们无法找到Text&#39; SelectAcc&#39;在您的HTML代码上。
其次,您没有使用Select
类Selenium框架,这有助于处理选择列表。
第三,即使您已将Select
类初始化到代码中的某个位置,但Select
类也没有SelectByText
名称的任何方法。
第四,传递值的方式是不正确的,它期望一个String值,所以它应该是双引号,即它应该像
selectByVisibleText("123456 (12345)");
从选择列表中选择值有3种方法
1. selectByIndex
2. selectByValue
3. selectByVisibleText
答案 1 :(得分:0)
要查找元素,请使用Xpath查找元素或从SelectElement匹配中获取value
属性为String.Empty
IWebElement SelectAccount = driver.FindElement(By.XPath(@"//select[@id='pkitem']/option[@value='']"));
或
IWebElement SelectAcc1 = driver.FindElement(By.Id("pkitem"));
SelectElement selectElement = new SelectElement(SelectAcc1);
IWebElement SelectAccount = selectElement.Options.FirstOrDefault(o => o.GetAttribute("value").Equals(string.Empty));
// This approach is slower than the first one