0

自動化:バスチケットの予約
説明:

  1. Webページに入ると、WebDriverは要素を見つけることができません( passengerDetails

  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 に答える