我就是这样把“阿姆斯特丹”送进田野的。但没有结果。我也试着。清除()场地。
WebElement flyToSearch = webDriver.findElement(By.xpath("//input[contains(@class, 'select2-search__field')]"));
flyToSearch.sendKeys("Amsterdam");
flyToSearch.sendKeys(Keys.ENTER);
但如果我用手打。它返回结果。我对旁边的搜索字段也做了同样的事情。效果很好。
下面我先关闭登录弹出。然后选择单程机票的包厢。然后我把原点定在伊斯坦布尔。但我不能把目的地定在阿姆斯特丹或其他任何城市。
private static final WebDriver webDriver = WebDriverReady.getWebClient();
public static void main(String[] args) {
try {
openPage();
closeLogin();
selectOneWay();
fillFlyFrom();
fillFlyTo();
} catch (Exception e) {
e.printStackTrace();
webDriver.close();
}
}
private static void openPage() {
webDriver.get(PegasusConstants.URL);
}
private static void closeLogin() {
webDriver.findElement(By.className("nxm2_bolbol-login_header")).click();
webDriver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
}
private static void selectOneWay() {
webDriver.findElement(By.xpath("//label[contains(@for, 'one_way')]")).click();
webDriver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
}
private static void fillFlyFrom() {
WebElement flyFrom = webDriver.findElement(By.xpath("//label[contains(@for, 'fs_from')]"));
WebElement parentOfFlyFrom = (WebElement) ((JavascriptExecutor) webDriver).executeScript(
"return arguments[0].parentNode;", flyFrom);
parentOfFlyFrom.click();
webDriver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
WebElement flyFromSearch = webDriver.findElement(By.xpath("//input[contains(@class, 'select2-search__field')]"));
flyFromSearch.sendKeys("Istanbul");
flyFromSearch.sendKeys(Keys.ENTER);
webDriver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
}
private static void fillFlyTo() {
WebDriverWait wait = new WebDriverWait(webDriver, 30);
wait.until(ExpectedConditions.elementToBeClickable(By.id("nxm2CookieSubmitButton"))).click();
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//label[text()='From']/preceding-sibling::span/descendant::span[@role='presentation']"))).click();
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.select2-search__field"))).sendKeys("Amsterdam");
List<WebElement> sourceOptions = webDriver.findElements(By.cssSelector("ul li[role='treeitem']"));
for (WebElement ele : sourceOptions) {
ele.click();
}
// WebElement flyTo = webDriver.findElement(By.xpath("//*[text()='Nereye']"));
// WebElement parentOfFlyTo = (WebElement) ((JavascriptExecutor) webDriver).executeScript(
// "return arguments[0].parentNode;", flyTo);
// parentOfFlyTo.click();
//
// webDriver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
//
// WebElement flyToSearch =
// new WebDriverWait(webDriver, 20)
// .until(ExpectedConditions.elementToBeClickable(By.xpath("//input[contains(@class, 'select2-search__field')]")));
// flyToSearch.sendKeys("Amsterdam");
// flyToSearch.sendKeys(Keys.ENTER);
//
// webDriver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
}
这里会有什么问题?谢谢
这可能是因为元素没有正确呈现,而您正试图与它交互。请尝试显式等待:
WebElement flyToSearch = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[contains(@class, 'select2-search__field')]")));
flyToSearch.sendKeys("Amsterdam");
flyToSearch.sendKeys(Keys.ENTER);
或使用JS:
WebElement flyToSearch = new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[contains(@class, 'select2-search__field')]")));
(JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('value', 'Amsterdam')", flyToSearch)
Udpate 1:
driver.manage().window().maximize();
WebDriverWait wait = new WebDriverWait(driver, 30);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("https://www.flypgs.com/en");
wait.until(ExpectedConditions.elementToBeClickable(By.id("nxm2CookieSubmitButton"))).click();
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//label[text()='From']/preceding-sibling::span/descendant::span[@role='presentation']"))).click();
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.select2-search__field"))).sendKeys("Amsterdam");
List<WebElement> sourceOptions = driver.findElements(By.cssSelector("ul li[role='treeitem']"));
for (WebElement ele : sourceOptions) {
ele.click();
}
我正在尝试刮这个url https://www.veikkaus.fi/fi/tulokset#!/tarkennettu-haku 刮伤主要有三个部分: null 我刚刚意识到,当选中时,输入字段从#date-range#from-date变为#date-range#from-date#focus-visible
我试图点击支付信息的输入字段,然后提交这些输入字段的关键字。我发现它们在iframes,但我没有运气切换到不同的帧。我附上了html的图片以及页面的样子。任何帮助都将不胜感激!下面是我的代码: 输入字段/字段的html和屏幕的图像
我需要将文本输入到没有输入标记的表中的字段中。此XPath唯一地指出字段 (可以在此XPath中添加一个尾随,这没有区别) 我可以使用该XPath读取该字段,但当我尝试在同一字段中插入一些文本时,我会得到一条错误消息:
编写一个方法,根据字符(char)[输入]是否是要编码的有效字符,返回true或false。即,如果输入[输入字符]为'a'-'z'或'a'-'z',则返回true,否则返回false。 为什么我的答案错了???? 公共静态布尔isValidChar_Q1(char chr){ }
问题内容: 我一直在试图阻止例外,但我不知道怎么办。我尝试过,等等。 有谁知道如何解决此问题?由于复制和粘贴,格式化有些偏离。 我尝试过的其他方法: 问题答案: 在我看来,您想跳过所有内容,直到获得整数。此代码在这里跳过除整数以外的所有输入。 只要没有可用的整数(而(!in.hasNextInt())),则丢弃可用的输入(in.next)。当整数可用时-读取它(int num = in.nextI
我在使用Guice时遇到空值问题。Nex我向您展示了一个类似场景的示例。我知道字段注入是一种不好的做法,但我希望它在演示中像这样工作 我有具体类命名为B(这是我要注入的一个): 我有一个名为A的抽象类,它有类B(我想通过字段注入注入的那个): 现在是另一个扩展A的具体类C: 我的GUI配置如下: 然后我对斯波克进行了测试: 谢谢:)