提问人:Venkatram Ayyer 提问时间:11/10/2023 最后编辑:Venkatram Ayyer 更新时间:11/11/2023 访问量:55
Java + Selenium - 无法单击下拉列表(不是“选择”下拉列表)并从下拉列表中选择“值”
Java + Selenium - Unable to Click Dropdown(Not a Select dropdown) and Select a Value from the drop down
问:
在 JAVA Selenium 中 - 我无法单击下拉列表并从中选择一个值,这不是一个选择下拉列表。这是一个 saleforce 网站。我已经看到它在 10 次执行中工作了 1 次,但没有让它始终如一地工作。
在此处
输入图像描述 这是下拉列表的 HTML,它没有被单击,使用的下拉列表的 xpath 是
//*[@data-name='billingRoadType']//*[name()='lightning-base-combobox']//button
在此处
输入图像描述 这是下拉列表值的 HTML。所用下拉列表值的 XPath 为
*[@data-name='billingRoadType']//*[@data-value='Otro']
尝试过 JavaScript 执行器、Action 类并单击有时 JSExecutor 可以工作,但这就像 10 次中的 1 次。该应用程序位于 salesforce 中。也尝试过显式等待,但不起作用
获取 NoSuchElementException: no such element: Unable to locate element: {“method”:“xpath”,“selector”:“//[@data-name='billingRoadType']//[@data-value='Otro']”}
答:
0赞
Pradheep Raaj
11/10/2023
#1
这个按钮/链接是否放置在您新打开并单击它的 url 中? 如果是,请在加载页面时检查是否加载了所有组件。可能有任何组件加载为 ajax 并可能导致中断。 并请发布按钮的控制台 dom
评论
0赞
Venkatram Ayyer
11/10/2023
嗨,Pradheep - 它存在于问题的第一张图片中
0赞
qatesterbecomingprogrammer
11/11/2023
#2
尝试应用等待,两次......一个用于显示,另一个用于可点击。
String valueXpath = "//[@data-value='Otro']"
WebDriverWait wait = new WebDriverWait(driver,30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(valueXpath)));
wait.until(ExpectedConditions.elementToBeClickable(By.xpath(valueXpath)));
WebElement dropDownValueToBeSelected = driver.findElement(By.xpath, valueXpath);
dropDownValueToBeSelected.click();
请记住,不要在显示 webelement 之前对其进行初始化。
评论
0赞
Venkatram Ayyer
11/11/2023
感谢您的建议,即在显示之前不要初始化 weblement。在我单击下拉列表之前,元素是不可见的,因此它在步骤 visibilityOfElementLocated 中失败。但是我已经将 JScript Executor 与 Action Class 一起使用,它可以工作但不一致......
0赞
qatesterbecomingprogrammer
11/11/2023
您点击了@VenkatramAyyer下拉按钮?
0赞
Venkatram Ayyer
11/12/2023
qatesterbecomingprogrammer - 有时它会点击一些时间,它没有点击。就是这样。如果它单击,则选择值并完成
0赞
qatesterbecomingprogrammer
11/12/2023
然后,您还必须在下拉列表上应用两个相同的等待。
0赞
Venkatram Ayyer
11/15/2023
添加了更多等待,但相同的结果无法看到每次单击的下拉列表。
评论