Selenium WebDriver问题材质UI选择字段(下拉列表)

时间:2017-01-13 17:53:24

标签: selenium-webdriver drop-down-menu material-design

您好我需要从Material UI库中访问Select Field组件。我正在使用传统的方式,但正如预期的那样抛出一个错误,因为这个库生成div元素而不是select。 请知道如何用这个组件选择元素?

网站网址:http://www.material-ui.com/#/components/select-field

错误:“org.openqa.selenium.support.ui.UnexpectedTagNameException:元素应该是”select“但是”div“。

我使用的代码如下:

public class MaterialUITest {

private WebDriver driver;
By selectFieldLocator = By.xpath("//div[contains(@id,'undefined-undefined-Frequency')]/div[1]/div[2]");

@Before
public void setUp() throws Exception {
    System.setProperty("webdriver.chrome.driver", "./src/test/resources/drivers/chromedriver.exe");
    driver = new ChromeDriver();
    driver.get("http://www.material-ui.com/#/components/select-field");
}
@After
public void tearDown() throws Exception {
}
@Test
public void test() {
    WebElement selectField = driver.findElement(selectFieldLocator);
    Select dropdown = new Select(selectField);
    dropdown.selectByVisibleText("Weekly");
    WebElement option = dropdown.getFirstSelectedOption();
    System.out.println(option.getText());
}
}

2 个答案:

答案 0 :(得分:1)

据我所知,您所遇到的问题与材料本身无关,它与自定义的选择实施更相关,即这不是选择,您应该对此进行选择'选择&#39 ;作为常规Web元素并分别处理它,换句话说,您需要单击它以展开,然后再单击所需元素以选择它。

答案 1 :(得分:0)

检查元素并复制完整的 xpath。 尝试使用 Full xpath 它会起作用,您需要使用 full tab 的 xpath,因为内部元素由于父元素而未启用。