我的代码:
driver.manage().window().maximize();
Duration pageLoadTimeout = Duration.ofMinutes(1);
driver.manage().timeouts().pageLoadTimeout(pageLoadTimeout);
driver.get("https://deutsche-giganetz.de/");
WebDriverWait wait = new WebDriverWait(driver, pageLoadTimeout);
wait.until(webDriver -> ((JavascriptExecutor) webDriver)
.executeScript("return document.readyState")
.equals("complete"));
driver.findElement(By.xpath("/html/body/section/div/div[1]/div[2]/div[1]/button[1]")).click();
Thread.sleep(5000);
driver.findElement(By.xpath("/html/body/header/div/div/nav/div/div[1]/div[2]/ul/li[1]/a")).click();
Thread.sleep(5000);
assert driver.getWindowHandles().size() == 1;
WebElement jetztBestellenButton = driver.findElement(By.xpath("/html/body/main/div[8]/div/section/div/div[1]/div[2]/div[3]/div[1]/div/div[5]/a"));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].click();", jetztBestellenButton);
Thread.sleep(5000);
driver.findElement(By.name("deliveryAddress.zip")).sendKeys("20095");
在页面上找不到元素。一旦脚本点击链接并被重定向到新页面,它应该在字段中输入一些内容,但这不起作用。我已经尝试了所有方法。
我尝试了路径findElement by.
的一切,与id,类,XPath和它没有一个工作.我从geckodriver
切换到chromedriver
以为这是浏览器,但它也不是.我还写了一个代码,加载页面,使路径可以找到,但它也没有工作.
每次的错误代码都是找不到该项,例如:"no such element: Unable to locate element: {"method":"css selector","selector":"*[name='deliveryAddress.zip']"}"
1条答案
按热度按时间tv6aics11#
**失败的根本原因:**单击时,窗口将在新选项卡中打开。您正尝试在父选项卡中执行
.sendKeys
。因此出现异常unable to locate element
**解决方案:**您需要切换到新选项卡,然后执行
.sendKeys
操作使用以下代码切换到新选项卡/窗口**完整的工作代码:**使用下面的代码,它在我的计算机中按预期工作
**注意:**如果您想切换到父选项卡,则只需使用以下代码
结果输出:
**UPDATE:**在末尾添加以下代码行,这将启用prüfen按钮
在上面的行之后,添加下面的3行