java - Selenium WebDriver 找不到页面上的任何元素

标签 java selenium selenium-webdriver webdriver

我正在尝试使用 Selenium WebDriver、Java、Junit 和 Cucumber BDD 来自动化一个航空公司 Web 应用程序。我能够创建一个简单的场景,例如选择带有出发日期的单程航类,然后选择座位,然后进入付款页面。我能够编写所有测试步骤,直到到达付款页面。 Selenium 成功对所有页面中的所有元素执行操作,但对支付页面中的任何元素执行操作均失败。我尝试了隐式等待和显式等待但没有使用。最初,当我在 Selenium 能够在“付款”页面上执行操作后运行测试时,以及当我尝试多次再次运行测试但由于“NoSuchElementException”而测试失败时。支付页面上的一些元素如下:

Select choice = new Select(driver.findElement(By.xpath("//select[contains(@id,'title')]")));
choice.selectByVisibleText("Mr");
driver.findElement(By.xpath("//div[contains(@class,'payment-passenger-first-name')]"))/input)).sendKeys("John");

我使用的隐式等待是:

driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);

我使用的explicitWait是:

WebElement element = new WebDriverWait(driver,20).until(ExpectedConditions.presenceOfElementLocated(By.xpath("elementlocation")));

Selenium 在付款页面上找不到任何元素,而不仅仅是上述元素。我不知道到底是什么问题。 有人可以为我提供解决这个问题的最佳解决方案吗?

最佳答案

如果元素写在 iframe 标记内,那么在您先切换到框架之前,selenium 不会找到这些元素。 切换框架的命令(driver.switchto().frame(Framename))

关于java - Selenium WebDriver 找不到页面上的任何元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40951922/

相关文章:

javascript - Selenium EventFiringWebDriver JavaScript : SyntaxError: missing ) after argument list

python - 我一直收到缩进错误,我不应该这样

java - ChromeDriver服务: Builder cannot be resolved

python - 是否可以让这个 Xpath 变得更短?

java - 没有蓝牙连接时不允许使用应用程序中按钮的功能

java - 如何对从java文件中读取的模式使用转义字符

java - Java中的重复字符串达到一定长度

java - 让 Hibernate 在完成实体实例后释放它们?

java - Selenium 'Unable to locate element'

python - 使用 Selenium Python chrome webdriver 发推文