自动化:预订公交车票
说明:
WebDriver 无法在我进入时找到元素 网页( passengerDetails )
但是当我直接访问该页面( passengerDetails )时,找到 元素。
注意:访问 SearchBus-> SelectBus-> SelectSeat-> PassengerDetails - 无法找到..
访问直接PassengerDetails - 能够找到..我想,这是因为网址从 http更改为https 。无论如何建议我解决这个问题..
答案 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();
}
}