WebDriver无法找到元素。但它在我直接访问网页时找到了

时间:2013-04-10 10:01:55

标签: webdriver selenium-webdriver

自动化预订公交车票
说明:

  1. WebDriver 无法在我进入时找到元素 网页( passengerDetails

  2. 但是当我直接访问该页面( passengerDetails )时,找到 元素。

    注意:访问 SearchBus-> SelectBus-> SelectSeat-> PassengerDetails - 无法找到..
        访问直接PassengerDetails - 能够找到..我想,这是因为网址从 http更改为https 。无论如何建议我解决这个问题..

2 个答案:

答案 0 :(得分:1)

因此,您的网站肯定使用iframe类型。基本上为了使您的代码有效,您需要从“iframe”切换回您的网站。 试试这段代码

driver.switchTo().defaultContent();

答案 1 :(得分:0)

在下面找到符合您要求的代码。它对我有用,直到输入乘客的详细信息。如果您不是在寻找,请告诉我。

package org.com.selen;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.support.ui.Select;

public class JetBus {

    protected static WebDriver driver;


    public static void main(String[] args) {

        System.setProperty("webdriver.ie.driver", "E:\\Books&Tutorials\\Selenium\\IEDriverServer.exe");
        driver = new InternetExplorerDriver();
        driver.get("www.jetbus.in");
        driver.findElement(By.id("o_source")).clear();
        driver.findElement(By.id("o_source")).sendKeys("Bangalore");
        driver.findElement(By.id("o_dest")).clear();
        driver.findElement(By.id("o_dest")).sendKeys("Hyderabad");
        driver.findElement(By.id("departDate")).click();
        driver.findElement(By.linkText("11")).click();
        driver.findElement(By.id("search")).click();
        driver.findElement(By.xpath("//img[contains(@src,'http://jetbus.in/images/viewseats.png')]")).click();

//我们需要在执行下一组操作之前切换到fancybox框架

driver.switchTo().frame("fancybox-frame");
        driver.findElement(By.id("availableSeatImgId33")).click();
        new Select(driver.findElement(By.id("boardingPoint"))).selectByVisibleText("Hebbal - 11:05 pm");
        driver.findElement(By.cssSelector("option[value=\"122989^11:05 pm\"]")).click();
        driver.findElement(By.id("continue")).click();

//点击继续后,它会直接返回乘客详细信息页面。

new Select(driver.findElement(By.id("i_passengerGender"))).selectByVisibleText("Mr");
        driver.findElement(By.id("i_passengerName")).clear();
        driver.findElement(By.id("i_passengerName")).sendKeys("JetBusPassenger");
        driver.findElement(By.id("i_passengerAge")).clear();
        driver.findElement(By.id("i_passengerAge")).sendKeys("49");
        driver.findElement(By.id("i_passengerMobile")).clear();
        driver.findElement(By.id("i_passengerMobile")).sendKeys("3698521463");
        driver.findElement(By.id("i_passengerEmail")).clear();
        driver.findElement(By.id("i_passengerEmail")).sendKeys("a_b@jetbus.com");
        driver.findElement(By.name("ContinuePayNew")).click();
        driver.findElement(By.cssSelector("div.notAvailableDiv > a > span")).click();


    }

}