您好我需要从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());
}
}
答案 0 :(得分:1)
据我所知,您所遇到的问题与材料本身无关,它与自定义的选择实施更相关,即这不是选择,您应该对此进行选择'选择&#39 ;作为常规Web元素并分别处理它,换句话说,您需要单击它以展开,然后再单击所需元素以选择它。
答案 1 :(得分:0)
检查元素并复制完整的 xpath。 尝试使用 Full xpath 它会起作用,您需要使用 full tab 的 xpath,因为内部元素由于父元素而未启用。