我试图在selenium中编写一个函数来检查原因下拉框是否显示为禁用,但不能完全获得xpath正确。下拉菜单的代码是在pic中,我正在处理的函数是第二个(InputDisabled),基于它的工作第一个(SearchDisabled):
' public By SearchDisabled(string searchId) =>By.XPath("美元//div [@ id = ' {searchId} ']//div[包含(@class v-input——是禁用的)]");
public By InputDisabled(string inputId) =>By.XPath("美元//div [@ id = ' {inputId} ']//div[包含(@class v-input——是禁用的)]");">
输入tid为"ai-confirm-allergy- mode -reason"。我试过输入包含…' and '包含(@disabled, 'disabled'…)等等,但是我的xpath知识还不够丰富!
下拉代码使用下面的代码
String value = driver.findElement(By.XPath("//input[contains(@id, 'ai-confirm-allergy')]").getAttribute("disabled");
Assert.AssertEquals(value, "disabled");
我不太明白你的问题。如果你想用xpath来定位一个元素,你可以用id;假设它是唯一的。so:
driver.findElement(By.xpath("//input[contains(@id, 'ai-confirm-allergy')]")
应该定位web元素。但是,您的SearchDisabled的xpath是定位一个div包含类'v-input——is-disabled'与另一个div的id为'{searchId}';同样的逻辑也适用于下一个。您的xpath正在尝试查找包含类"v-input——is-disabled"的div,该div位于使用输入id定位的另一个div中。我认为这个组合不能找到图片中高亮显示的元素。