当前位置: 首页 > 知识库问答 >
问题:

Selenium WebDriver在页面上找不到任何元素

邵阳
2023-03-14

我正在尝试用Selenium WebDriver、Java、Junit和Cucumber BDD来自动化一个航空公司的web应用程序。我能够创建一个简单的场景,比如选择一个带有出发日期的单程航班,然后选择一个座位,然后继续到付款页面。我能够写出所有的测试步骤,直到到达付款页面。Selenium成功地对所有页面中的所有元素执行了操作,但对支付页面中的任何元素执行了操作,却不成功。我尝试了隐式wait和显式wait,但没有使用。最初,当我运行一次测试时,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");

我使用的隐含wait是:

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

我使用的明确wait是:

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

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

共有1个答案

长孙翔
2023-03-14

如果元素是在iframe标记中写入的,那么selenium将不会找到元素,直到您切换到frame。切换帧的命令(driver.switchTo().frame(Framename))

 类似资料: