Selenium Select无法找到选项

时间:2015-07-21 17:44:56

标签: java html selenium selenium-webdriver

当我找到并指定一个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

但它不会打印任何内容。此外,如果我尝试按索引选择一个选项,它表示无法找到该索引的选项。

1 个答案:

答案 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()的数量吗?选择对象总是可能不正确。