如何在enable / visiblity的基础上获取下拉列表的xpath?

时间:2017-08-28 10:14:44

标签: java selenium xpath selenium-webdriver

基本上,我在一个页面上有多个丢弃。如果我点击编辑图标,下拉就会启用。如果我点击其他下拉菜单,第一个下拉列表会被禁用,第二个下拉列表会启用。 我试图通过下拉的可见性找到xpath。就像我的xpath对于所有下拉列表都是常见的,但它应该在启用下拉可见性的基础上选择值。

禁用HTML:

<select class="tabledit-input form-control fc-alt" style="display: none;" name="idLoc" disabled="">

启用HTML:

<select class="tabledit-input form-control fc-alt" style="" name="idLoc">

我试过的Mycode:

wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("my_xpath']")));

每次,我的xpath选择第一个drop(禁用),但是如果我通过可见性找到它,它会找到启用的下拉值,我将解决我的问题。

如果有澄清,请告诉我。

1 个答案:

答案 0 :(得分:-1)

您可以尝试使用以下XPath

//select[@style='display: block;']

匹配可见 select。或

//select[@style='display: none;']

匹配不可见

但是,由于DOM中存在这两个元素,您最好只使用正确的预期条件,在这种情况下为visibilityOfElementLocated

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("my_xpath'")));

上面的代码应该允许您获取当前可见的select元素

如果元素具有disabled属性,则可以使用

获取已禁用的select
//select[@disabled]

并启用

//select[not(@disabled)]