首页 > 解决方案 > 当基于突出显示的下拉列表更改类时如何选择 Selenium web Element

问题描述

我有一个下拉选择,类会根据鼠标在下拉值上的移动而变化(活动值)F12 带有 UI 的 HTML 屏幕截图

我尝试了以下代码,它适用于“个人”

driver.findElement(By.cssSelector("div[class=ui-menu-item-wrapper]")).click();

如果您看到屏幕截图,个人和公司的“ui-menu-item-wrapper”类是相同的。

问题:我不确定如何使用 cssSelector 选择个人或公司。我想从 excel 数据馈送中给个人或公司。

标签: seleniumselenium-webdriver

解决方案


这是使用 xpath 选择的选项。

Xpath:

//ul[starts-with(@class,'ui-menu') and @role='combobox']//div[normalize-space(.)='" + valueFromExcel +"']

//ul[starts-with(@class,'ui-menu') and @role='combobox']//div[normalize-space(.)='Individual']

在这种情况下,使用 xpath 既简单又直接,因为您计划使用文本来识别 CSS 不支持的元素。

尽管如此,如果您想坚持使用 CSS,那么您必须使用 css 获取每个元素文本,然后nth在文本匹配时选择元素。


推荐阅读