gpt4 book ai didi

javascript - Selenium Webdriver 定位器

转载 作者:行者123 更新时间:2023-11-29 21:16:12 26 4
gpt4 key购买 nike

我在 WebDriver 中自动化报告提交过程,报告有多个页面,所有页面中都会有 Next按钮进入下一页。

下一个按钮有一个跟随定位器,

<a class="buttonNext btn btn-green btnwidth" href="javascript:;" style="">Next</a>

问题是所有Next报告中的按钮具有相同的定位器,因为向导包含下一个、上一个和提交按钮在整个报告中很常见,只有页面内容会发生变化,但此面板在整个报告中保持不变。

我可以使用 xpathNext按钮是:

.//*[@id='wizard']/div[2]/a[3]

xpath对于 Next 所在的所有地方都是一样的按钮放置在报告中。

我的编码如下:-

driver.findElement(By.xpath("//div[@id='wizard']/div[2]/a[3]")).click();
Thread.sleep(3000);

((JavascriptExecutor)driver).executeScript("scroll(0,2500)");
driver.findElement(By.xpath("//div[@id='wizard']/div[2]/a[3]")).click();
driver.findElement(By.xpath("//div[@id='wizard']/div[2]/a[3]")).click();

//WebDriverWait wait2 = new WebDriverWait(driver, 10);
//WebElement element2 = wait.until(ExpectedConditions.elementToBeClickable(By.partialLinkText("Next")));

driver.findElement(By.id("SignatureDate")).click();
driver.findElement(By.id("SignatureDate")).clear();
driver.findElement(By.id("SignatureDate")).sendKeys("01/09/2016");

WebDriver正在识别第一个 Next按钮 xpath并单击它,但对于接下来的两页,我再次提供相同的 xpath访问 Next按钮,但 selenium 向我抛出错误消息:-

ElementNotVisibleexception:element not visible.

如何区分 Next按钮为 WebDriver 识别它?

注意:报告在iframe中打开& 我在 iframe 工作.

最佳答案

您可以使用 Explicit Wait 让页面在尝试单击其他页面上的“下一步”按钮之前完全加载。此外,如果使用 iFrame,您可以使用以下内容:

wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("FRAME_NAME"));

关于javascript - Selenium Webdriver 定位器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39348596/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com