当我找到并指定一个Select对象来抓取它的选项时,我遇到了一个问题,可能是由于页面上某些不稳定的HTML。以下是Select及其选项的HTML:
public function index()
{
$users = User::with('roles')->get();
return $users;
}
使用XPath定位select:<select>
<option selected="" val="1">1</option>
<option val="2">2</option>
<option val="3">3</option>
<option val="4">4</option>
<option val="5">5</option>
...
</select>
我想知道它是否无法找到选项,因为HTML中.//*[@id='employeeTable_paginate']/div/select
被称为values
?我尝试了以下代码,看看它是否会获得选项:
vals
但它不会打印任何内容。此外,如果我尝试按索引选择一个选项,它表示无法找到该索引的选项。
答案 0 :(得分:1)
selectByValue肯定不起作用。如果您转到implementation of Select,则可以看到selectByValue()
使用xpath查找value
字段。好消息是它很容易解决。
对于您的情况,您需要找到单个值(搜索val
代替),然后选择它。
WebElement option = element.findElement(By.xpath(
".//option[@val = '" + value + "']"));
if (!option.isSelected())
{
option.click();
}
我不确定为什么selectByIndex不起作用,你能检查一下select.getOptions()
的数量吗?选择对象总是可能不正确。