我试图让selenium点击下拉菜单中的一个选项。有几个选项,看起来它们唯一独特的东西是链接文本。他们都有'数据证明',他们都是一样的。 有人在下拉列表中看到了点击特定选项的方法吗?
以下是下拉列表中的一些选项示例:(应用安装和潜在客户生成)
<li class="" data-testid="ads-mini-grouped-objective-selector-option" style=""><div aria-checked="false" aria-disabled="false" class="_2wpb _3v8w" data-testid="SUISelectorOption/container" role="menuitem" style="letter-spacing: normal; color: rgb(75, 79, 86); font-size: 12px; font-weight: normal; font-family: Arial, sans-serif; line-height: 16px; padding: 6px 24px 6px 32px;" tabindex="-1"><span class="_27_z _4s-j" style="margin-left: 0px; margin-right: 8px;"></span><div class="_3leq"><span>App installs</span></div></div></li>
<li class="" data-testid="ads-mini-grouped-objective-selector-option" style="background-color: rgba(29, 33, 41, 0.08);"><div aria-checked="false" aria-disabled="false" class="_2wpb _3v8w" data-testid="SUISelectorOption/container" role="menuitem" style="letter-spacing: normal; color: rgb(75, 79, 86); font-size: 12px; font-weight: normal; font-family: Arial, sans-serif; line-height: 16px; padding: 6px 24px 6px 32px;" tabindex="-1"><span class="_27_z _5da8" style="margin-left: 0px; margin-right: 8px;"></span><div class="_3leq"><span>Lead generation</span></div></div></li>
我试图通过链接文字进行选择,但这不起作用。
答案 0 :(得分:1)
要点击下拉列表中的选项,您可以将函数编写为clickOption()
,如下所示:
public void clickOption(String option)
{
driver.FindElement(By.XPath("//li[@data-testid='ads-mini-grouped-objective-selector-option']//span[.='" + option + "']")).Click();
}
现在,在您的main(
)或@Test
注释类中,使用您要选择的选项调用函数clickOption()
方法,如下所示:
clickOption("App installs");
//or
clickOption("Lead generation");
答案 1 :(得分:0)
driver.findElement(By.xpath("(//li[@data-testid='ads-mini-grouped-objective-selector-option'])[2]")).click();
尝试使用此xpath单击具有相同data-testid的第二个数据:
答案 2 :(得分:0)
您可以使用XPath按属性li
和内部文本选择data-testid
元素:
//li[@data-testid='ads-mini-grouped-objective-selector-option' and .='Lead generation']
答案 3 :(得分:0)
//*[text()='App installs']/parent::div/parent::div/parent::li
因为并非所有html都被给出,所以这是我唯一可以获得的选项