selenium java正在尝试单击列表元素

i5desfxk  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(337)

我正试图通过SeleniumWebDriver测试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=“//*[@id=“gender0”]”。在那里,我点击选项与'男性'文本。不太管用。
然后我尝试了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')");

这也不管用。它将文本设置为span,但我仍然得到一个错误,我没有填写性别字段。
所以可能有人知道如何设置至少性别。
如何进入乘客信息页面:预订行程->航班->往返行程->从(我选择jfk svo)->本月的任何日期->确切日期->金钱->查找航班->选择任何机票类型->继续->你在那里。
编辑1。页面的html

31moq8wy

31moq8wy1#

解决了的。我需要突出显示“男性”选项,然后单击。

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

相关问题