java - 陈旧元素异常、元素不可点击、元素点击被拦截且没有此类元素错误显示,由同一元素交替显示

标签 java selenium-webdriver testautomationfx

我正在尝试选择 https://www.jabong.com/find/men's-black-jeans 中可用的多个文件管理器使用自动化(Firefox)。

但是,选择第一个选项(性别)后,我无法继续。

我遇到了元素点击被拦截的情况,并尝试了 Fluent Wait,这导致了 Stale Element 异常。

如果我删除 Fluent 等待或使用隐式等待,有时会出现 Elementfound 异常。

更令人困惑的是,有时代码无需等待即可正常运行,并且能够选择多个选项,但这种情况很少见

 public void case9() {
     driver.get("https://www.jabong.com/");
      WebElement SearchBox = driver.findElement(By.xpath("//*[@id=\"search\"]"));
      SearchBox.sendKeys("men's black jeans");
      Actions actn = new Actions (driver);
      actn.sendKeys(SearchBox, Keys.ENTER).build().perform();
      driver.manage().timeouts().implicitlyWait(34, TimeUnit.SECONDS);
      driver.findElement(By.xpath("//*[@id=\"allFilterPopupTop\"]")).click();
      driver.manage().timeouts().implicitlyWait(34, TimeUnit.SECONDS);
 driver.findElement(By.xpath("/html/body/section[1]/div/section/section[1]/div/div[2]/div[2]/ul/li[1]/div[3]/div/div[2]/label[1]/div/input")).click();


      driver.findElement(By.xpath("//*[@id=\"Brand\"]")).click();
      WebDriverWait wait1 = new WebDriverWait(driver,61);
      WebElement brand1 = 
      driver.findElement(By.xpath("xpath for element"));
      wait1.until(ExpectedConditions.elementToBeClickable(brand1));
      brand1.click();
      driver.findElement(By.xpath("xpath for element")).click();
      driver.findElement(By.xpath("//[@id=\"Global_Size\"]")).click();
      WebElement Size = 
      driver.findElement(By.xpath("xpath for element")); 
      wait1.until(ExpectedConditions.elementToBeClickable(Size));
      Size.click();
      driver.findElement(By.xpath("//*[@id=\"Fit\"]")).click();
      driver.manage().timeouts().implicitlyWait(61, TimeUnit.SECONDS);
      driver.findElement(By.xpath("xpath for element")).click();
      driver.findElement(By.xpath("//*[@id=\"Fade\"]")).click();
      driver.manage().timeouts().implicitlyWait(61, TimeUnit.SECONDS);    
      [@id=\"applyFIlters\"]")).click();
       }

最佳答案

我刚刚尝试过,这段代码工作正常。

driver.get("https://www.jabong.com/");
        WebElement searchBox = driver.findElement(By.cssSelector("#search"));
        searchBox.sendKeys("men's black jeans");
        WebElement searchIcon = driver.findElement(By.cssSelector("#top-search-input > div.search-containter > span"));
        searchIcon.click();
        WebElement firstCheckBox = driver.findElement(By.id("boys"));
        firstCheckBox.click();

关于java - 陈旧元素异常、元素不可点击、元素点击被拦截且没有此类元素错误显示,由同一元素交替显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57978090/

相关文章:

Java + OpenCV SVM 训练错误

python - Selenium Python : Expected "handle" to be a string, 得到 [object Undefined] 未定义

selenium - 获取 Selenium 中的下一个元素

java - 如何从 SPAN 中提取文本?请

android - 有没有自动化测试工具来测试android apk?

testing - 如何从 Selenium IDE 在 MS Excel 中运行测试用例?

java - 在 eclipse : SEVERE: ContainerBase. addChild : start: org. apache.catalina.LifecycleException 中获取错误:

javascript - 如何从浏览器获取从另一个应用程序删除的 cookie

javascript - 使用 Protractor 在 Firefox 上下载文件

java - 为什么没有 volatile 的 DCL 对原语有效?