我正在尝试使用selenium设置span元素的内容,但似乎没有将其设置为值。 span字段是在用户键入时从列表中填充的值。
1)转到http://www.goeuro.es。 2)尝试将目标字段设置为: a)如果用户在目标字段中键入berlin,它将被文本替换(这将从他们的js填充)
BerlínAlemania
我尝试使用以下代码进行设置。
@FindBy(xpath = ".//*[@id='$desktopSearchform']/div[1]/div[2]/d-departure-position/div/div/div/span[1]")
private WebElement fromSearchFieldSpan1;
@FindBy(xpath = ".//*[@id='$desktopSearchform']/div[1]/div[2]/d-departure-position/div/div/div/span[2]")
private WebElement fromSearchFieldSpan2;
.
.
.
.
((JavascriptExecutor)driver).executeScript("arguments[0].innerHTML = 'Berlín'", fromSearchFieldSpan1);
((JavascriptExecutor)driver).executeScript("arguments[0].innerHTML = 'Alemania'", fromSearchFieldSpan2);
当我尝试使用上面提供的代码时,它似乎将文本设置为所述字段的标题,因为我在提交页面时收到输入验证错误(好像这些值根本没有输入)。 附上截图。
我无法使用sendKeys()设置此字段的值,因为这不是文本字段。
有任何想法如何使用selenium web驱动程序设置。?
答案 0 :(得分:1)
您应该在处理span
时尝试处理input
元素。请尝试以下代码:
@FindBy(xpath = "//input[@id='$city']")
private WebElement fromSearchFieldSpan;
fromSearchFieldSpan.sendKeys('Berlin Alemania')