1

当我选择值表单下拉框时,会显示错误消息“元素应该是“选择”但被“输入”。我尝试过 selectByValue() 和 selectByIndex()。

HTML:

<div class="rcbScroll rcbWidth" style="width: 100%; overflow: auto; height: 40px;">
<ul class="rcbList" style="list-style:none;margin:0;padding:0;zoom:1;">
<li class="rcbItem">TIN</li>
<li class="rcbHovered">SSN</li>
</ul>
</div>

java代码是:

Select select=new Select(driver.findElement(By.xpath(OR.getProperty("SSN"))));
select.selectByValue("SSN");
4

4 回答 4

0

您可以申请select从下拉列表中选择值,那里有一个li元素,您尝试使用select这就是它引发异常的原因来实现

于 2017-09-22T06:27:35.830 回答
0

哟可以通过以下方法选择元素

driver.findElement(By.xpath(OR.getProperty("SSN")).click();

在下一行中,按以下方式选择所需的下拉菜单:

driver.findElement(By.xpath("//li[text() = 'SSN']")).click();
于 2017-09-22T06:06:41.207 回答
0

此错误消息...

Element should have been "select" but was "input"

...暗示您已尝试通过Select对象的实例选择值,其中所需的元素不是任何<select>父标记的一部分。

根据您共享的HTML,单击带有文本作为SSN的选项,您可以使用以下代码块:

driver.findElement(By.xpath("//div[@class='rcbScroll rcbWidth']")).click();
driver.findElement(By.xpath("//div[@class='rcbScroll rcbWidth']/ul//li[@class='rcbHovered' and contains(.,'SSN')]")).click();
于 2018-04-25T12:43:48.320 回答
0

选择方式对您不起作用,因为您需要选择带有选项标签的标签作为子标签。Bellow html 代码是使用 Selenium Select 所需的正确格式。

<select some-label-name=”display label” name=”some name” id=”some id” title=”some title” class=”class name”&gt;
<option value=”0”&gt;display label</option>
<option value=”1” selected=”1”&gt;1</option>
<option value=”2”&gt;2</option>
<option value=”3”&gt;3</option>
</select>

要解决您的问题,您需要单击下拉列表以打开选项,然后单击您需要的选项。

于 2018-05-26T13:22:56.547 回答