0

自动化预订巴士票
说明:

  1. 当我进入网页(passengerDetails)时, WebDriver无法定位元素

  2. 但是当我直接访问该页面(passengerDetails)时,它会定位 元素。

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

4

2 回答 2

1

所以你的网站肯定是在使用 iframe 类型。基本上要使您的代码正常工作,您需要从“iframe”切换回您的网站。试试这个代码

driver.switchTo().defaultContent();
于 2013-04-10T11:41:50.110 回答
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();


    }

}
于 2013-04-10T13:57:48.787 回答