在Virgintrains.co.uk网站上尝试选择到达火车站
在我的代码中,我可以选择出发地点,在下一个字段中,我想选择一个到达地点,然后选择日期。
我正在发出的问题发送到达位置的名称,但是它没有提交它,而是移至下一个字段。
我尝试使用Tab键,以便转到下一个字段,我尝试通过可见测试进行选择,
`import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;
public class VirginTrains {
@SuppressWarnings("null")
public static void main(String[] args) throws InterruptedException {
String projectPath = System.getProperty("user.dir");
System.out.println("projectPath : " + projectPath);
//Opens virgintrains webpage
System.setProperty("webdriver.chrome.driver", projectPath + "\\drivers\\chromedriver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.virgintrains.co.uk/");
//The following maximise the screen size
driver.manage().window().maximize();
//The following selects the Departure train station
WebElement textBoxDep = driver.findElement(By.name("origin_station"));
textBoxDep.sendKeys("London Euston");
//ADD WAIT STATMENT
//Thread.sleep(10000);
THIS SECTION BELOW IS WHERE I AM HAVING THE ISSUE
// Following selects the Arrival train station
WebElement textBoxArr = driver.findElement(By.name("destination_station"));
textBoxArr.sendKeys(" Manchester Piccadilly");
// WebElement option = null;
//option.click();
//ADD WAIT STATMENT
Thread.sleep(10000);
WebElement webElement = null;
webElement.sendKeys(Keys.TAB);
WebElement webElement2 = null;
webElement2.sendKeys(Keys.TAB);`
我希望代码选择所需的火车站,然后移至日期字段。
实际结果是它正在填充字段,而不是选择桩号并移至下一个字段。
答案 0 :(得分:1)
您正在尝试将Tab键发送给空元素。不用分开位置和按Tab键,而是将它们放在同一行:
textBoxDep.sendKeys("London Euston" + Keys.TAB);
textBoxArr.sendKeys("Manchester Piccadilly" + Keys.TAB + Keys.TAB);
此外,不建议使用Thread.sleep。您可以先等待特定条件再继续操作。有关在此处等待的更多信息:https://www.toolsqa.com/selenium-webdriver/wait-commands/