Java + Selenium - 无法单击下拉列表(不是“选择”下拉列表)并从下拉列表中选择“值”

Java + Selenium - Unable to Click Dropdown(Not a Select dropdown) and Select a Value from the drop down

提问人:Venkatram Ayyer 提问时间:11/10/2023 最后编辑:Venkatram Ayyer 更新时间:11/11/2023 访问量:55

问:

在 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']”}

java selenium-webdriver xpath css-selectors

评论

0赞 pburgr 11/10/2023
你能分享 URL 吗?
0赞 Venkatram Ayyer 11/10/2023
ccepeb2b--qa.sandbox.my.site.com/store/es/SelfRegister 第 1 页输入 9 个字符并继续,然后是 Tipo de via 下拉列表

答:

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
添加了更多等待,但相同的结果无法看到每次单击的下拉列表。