在销售队伍应用程序中。所有元素都没有正确的静态 id 或名称或其他属性。
我的要求是从salesforce Web应用程序的下拉列表中获取所有值。
在Chrome浏览器上的检查下拉列表中显示CSS:
<div data-aura-rendered-by="9529:0"><a aria-required="false" class="select" aria-disabled="false" aria-describedby="9520:0-label" aria-haspopup="true" tabindex="0" role="button" title="" data-aura-rendered-by="9530:0" href="javascript:void(0);" data-interactive-lib-uid="10">--None--</a></div>'
它只显示已经选择的值,即在我的应用程序中默认为无。
我无法在此div 中看到其他选项。这无助于我获取值。 在检查下拉列表中的值时,它在其他位置显示html
<div class="select-options" role="menu" data-aura-rendered-by="9542:0"><!--render facet: 9543:0--><ul class="scrollable" role="presentation" data-aura-rendered-by="9544:0"><!--render facet: 10751:0--><li role="presentation" data-aura-rendered-by="10755:0" class="uiMenuItem uiRadioMenuItem" data-aura-class="uiMenuItem uiRadioMenuItem"><a data-aura-rendered-by="10756:0" href="javascript:void(0);" role="menuitemradio" aria-disabled="false" tabindex="0" title="--None--" aria-checked="false"><b></b>--None--</a></li><li role="presentation" data-aura-rendered-by="10761:0" class="uiMenuItem uiRadioMenuItem" data-aura-class="uiMenuItem uiRadioMenuItem"><a data-aura-rendered-by="10762:0" href="javascript:void(0);" role="menuitemradio" aria-disabled="false" tabindex="0" title="Provider Concern / Question" aria-checked="false"><b></b>Provider Concern / Question</a></li><li role="presentation" data-aura-rendered-by="10767:0" class="uiMenuItem uiRadioMenuItem" data-aura-class="uiMenuItem uiRadioMenuItem"><a data-aura-rendered-by="10768:0" href="javascript:void(0);" role="menuitemradio" aria-disabled="false" tabindex="0" title="Provider No Show" aria-checked="false"><b></b>Provider No Show</a></li></ul></div>
我尝试使用以下代码来检索值。 但只得到空值:
List<WebElement> subStatuses = driver.findElements(By.xpath("(.//div[@class='select-options popupTargetContainer uiPopupTarget uiMenuList uiMenuList--default uiMenuList--left uiMenuList--short'])[3]//li"));
System.out.println("size of the data list :: "+subStatuses.size()+"values:: "+subStatuses.toString());
for(WebElement e:subStatuses)
{
System.out.println("Values from Fsl dropdownlist"+e.getText().toString());
}
有关如何从此下拉列表中检索值的任何帮助,非常感谢..!
你的 xpath 似乎是错误的: 尝试这样的事情:
List<WebElement> subStatuses = driver.findElements(By.xpath("//div[@class='select-options']/ul/li[contains(@class, 'uiMenuItem')]/a"));
如果它是您页面上唯一的"选择",这应该有效。如果有多个,您可能需要指定所需的 dom 中的选择选项div,例如选择第一个匹配项://div[@class='select-options'][1]/ul/li[contains(@class, 'uiMenuItem')]/a
而不是 getText((;您可能必须使用 element.getAttribute('textContent'(;