Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在enable/Visibly的基础上获取下拉列表的xpath?_Java_Selenium_Xpath_Selenium Webdriver - Fatal编程技术网

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

Java 如何在enable/Visibly的基础上获取下拉列表的xpath?,java,selenium,xpath,selenium-webdriver,Java,Selenium,Xpath,Selenium Webdriver,基本上,我在一个页面上有多个drop。如果我单击编辑图标,下拉菜单将启用。现在,如果我再次单击其他下拉菜单,第一个下拉菜单将禁用,第二个下拉菜单将启用。 我试图通过下拉列表的可视性来查找xpath。与my xpath一样,xpath在所有下拉列表中都是通用的,但它应该基于enable drop down Visibly来选择值 已禁用的HTML: <select class="tabledit-input form-control fc-alt" style="display: none;

基本上,我在一个页面上有多个drop。如果我单击编辑图标,下拉菜单将启用。现在,如果我再次单击其他下拉菜单,第一个下拉菜单将禁用,第二个下拉菜单将启用。 我试图通过下拉列表的可视性来查找xpath。与my xpath一样,xpath在所有下拉列表中都是通用的,但它应该基于enable drop down Visibly来选择值

已禁用的HTML:

<select class="tabledit-input form-control fc-alt" style="display: none;" name="idLoc" disabled="">
每次,我的xpath都会选择第一个下拉列表(禁用),但如果我通过可见性找到它,它会找到启用的下拉列表值,我的问题就会得到解决


如果需要澄清,请告诉我。

您可以尝试使用下面的
XPath

//select[@style='display: block;']
要匹配可见的
,请选择
。或

//select[@style='display: none;']
匹配隐形

但由于这两个元素都存在于DOM中,所以最好只使用正确的预期条件,即
元素的可见性在本例中为

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("my_xpath'")));
上述代码应允许您获取当前可见的
选择
元素

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

//select[@disabled]
并启用

//select[not(@disabled)]

共享了enable和disable元素的HTML代码您是否尝试过:-//选择[@class='tabledit-input form control fc alt'和@style=''和@name='idLoc']我错过了什么吗?:)downvoter有什么评论吗?我不知道怎么了,但当我点击
//选择[@class='tabledit-input form control fc alt'][@name='idLoc'][@style='display:block;']
时,它不会高亮显示。但是它应该突出显示,正如代码所暗示的那样,启用下拉列表为
@Saad,注意
显示:
块之间有一个空格[@style='display:block;']
而不是
[@style='display:block;']
。这似乎是一个很小的细节,但它确实关系到是否需要纠正。目前,我面临的问题是在一个页面中突出显示2个下拉列表。禁用的第一个html是-
,我想从中选择值的第二个html是-
通过排除禁用的
选项不选择第一个html的任何内容。尝试
//选择[未(@disabled)]
//select[@disabled]
//select[not(@disabled)]