Selenium java试图点击列表元素

时间:2017-07-14 18:43:50

标签: java selenium-webdriver

我试图通过selenium webDriver测试delta.com网站,并且我已经停留在乘客信息页面上,说明如何在下面进行操作。除了我无法选择任何列表字段外,一切都很顺利。列表打开,程序不会选择任何内容并进一步。

例如,我试图选择性别。

@FindBy(xpath = "//*[@id=\"gender0-button\"]/span[1]")
private WebElement genderSelection;
@FindBy(xpath = "//*[@id="gender0-menu"]/li[2]")
private WebElement genderMale;

public void setGender(){
    genderSelection.click();
    genderMale.click();
}

但它没有选择任何东西,更进一步。

然后我尝试使用隐藏的<select>,xpath =&#34; // * [@ id =&#34; gender0&#34;]&#34;。在那里,我点击选项与男性&#39;文本。也不行。

然后我尝试了javascript。如果我手动更改为“男性”,<span>中的某些属性会发生变化。所以我这样做(设置的ID可能会有所不同):

js.executeScript("arguments[0].innerText = 'Male'", genderMale);
js.executeScript("document.getElementById('gender0-button').setAttribute('aria-activedescendant', 'ui-id-74')");
js.executeScript("document.getElementById('gender0-button').setAttribute('aria-lablelledby', 'gender0-label ui-id-74 gender0-required')");

这也不起作用。它将文本设置为跨度,但后来我仍然得到错误,我已经填补了性别领域。

所以可能有人知道如何设置至少性别。

如何到达乘客信息页面:预订旅行 - &gt;飞行 - &gt;往返 - &gt;从 - 到(我选择JFK-SVO) - &gt;本月的任何日期 - &gt;确切日期 - &gt;钱 - &gt;查找航班 - &gt;选择任何门票类型 - &gt;继续 - &gt;你在那里。

编辑1。 HTML of the page

1 个答案:

答案 0 :(得分:0)

解决。我需要强调一下男性&#39;选项,然后单击。

genderSelection.click();
genderMale.sendKeys("Male");
genderMale.click();