自动化:预订巴士票
说明:
当我进入网页(passengerDetails)时, WebDriver无法定位元素
但是当我直接访问该页面(passengerDetails)时,它会定位 元素。
注意:访问SearchBus->SelectBus->SelectSeat->PassengerDetails - 无法定位..直接
访问PassengerDetails -能够定位.. 我猜,这是因为 URL 从http 更改为 https。无论如何建议我解决这个问题..
自动化:预订巴士票
说明:
当我进入网页(passengerDetails)时, WebDriver无法定位元素
但是当我直接访问该页面(passengerDetails)时,它会定位 元素。
注意:访问SearchBus->SelectBus->SelectSeat->PassengerDetails - 无法定位..直接
访问PassengerDetails -能够定位.. 我猜,这是因为 URL 从http 更改为 https。无论如何建议我解决这个问题..
所以你的网站肯定是在使用 iframe 类型。基本上要使您的代码正常工作,您需要从“iframe”切换回您的网站。试试这个代码
driver.switchTo().defaultContent();
在代码下方找到您的要求。它对我有用,直到输入乘客详细信息为止。如果这不是您要找的,请告诉我。
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();
}
}