Selenium java试图点击列表元素
问题描述:
我试图通过硒webDriver测试delta.com网站,我卡在旅客信息页面,说明如何到达下面。除了我不能选择任何列表字段,一切都很好。列表打开,程序不会选择任何内容并继续。Selenium java试图点击列表元素
因此,例如我试图选择性别。
@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();
}
但它没有选择任何东西,走得更远。
然后我尝试使用隐藏的xpath =“// * [@ id =”gender0“]”的<select>
“。在那里,我点击“男性”文本的选项。不起作用。
然后我尝试了javascript。如果我手动更改为“男性”,<span>
中会有一些属性发生变化。所以我这样做smth(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')");
这不工作了。它将文本设置为跨度,但是我仍然遇到错误,我没有填充性别字段。
所以可能有人知道如何设置至少性别。
如何到达乘客信息页面:预订行程 - >航班 - >往返行程 - >从 - (选择JFK-SVO) - >本月任何日期 - >确切日期 - >金钱 - >查找航班 - >选择任何票类型 - >继续 - >你在那里。
编辑1. HTML of the page
答
解决。我需要突出显示“男性”选项,然后单击。
genderSelection.click();
genderMale.sendKeys("Male");
genderMale.click();
如果你直接在这里粘贴html这里会更好 – Mikhail
将页面加入代码可能是一个好主意。你让别人更容易处理你的问题越容易他们愿意帮助:) – NotInventedHere