0

私はセレンが初めてです。http://www.countdown.tfl.gov.ukでテストケースを書く練習をしています。以下は、私が従った手順です。

  • a) Selenium Web Driver のブラウザーを開きました
  • b)検索テキストボックスを見つけてH32と入力し、検索ボタンをクリックしてセレンに移動します。

この部分までは正常に動作します。

このページでは、ページの左側の検索で実際に 2 つのレコードを取得しています。私は実際に最初のリンク、つまり「Towards Southall,Townhall」リンクをクリックしようとしています。何も起こっていません。

以下は私のコードです:

 public class CountdownTest {   
        @Test
        public void tflpageOpen(){
            WebDriver driver = openWebDriver();
            searchforBus(driver,"H32");
                selectrouteDirection(driver)

        }

    //open the countdowntfl page
        private WebDriver openWebDriver(){
            WebDriver driver = WebDriverFactory.getWebDriver("FireFox");
            driver.get("http://www.countdown.tfl.gov.uk");
            return driver;

        }
        private void searchforBus(WebDriver driver,String search){
            WebElement searchBox = driver.findElement(By.xpath("//input[@id='initialSearchField']"));
            searchBox.sendKeys(search);
            WebElement searchButton = driver.findElement(By.xpath("//button[@id='ext-gen35']"));
            searchButton.click();

        }
        private void selectrouteDirection(WebDriver driver){
            WebElement towardssouthallLink= driver.findElement(By.xpath("//span[@id='ext-gen165']']"));
            ((WebElement) towardssouthallLink).click();

        }
    }

私を助けてください。

ありがとう。

4

3 に答える 3

0

取得しているので、 WebDriver の明示的な待機NoSuchElement Exceptionを使用して次のコードを試すことができます。

WebDriverWait wait = new WebDriverWait(driver, 15);
WebElement towardssouthallLink = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("(//*[@id='route-search']//li/span)[1]")));
towardssouthallLink.click();

またはWebDriver の暗黙の待機

WebDriver driver = WebDriverFactory.getWebDriver("FireFox");
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.get("http://www.countdown.tfl.gov.uk");

チップ:

  • 検索結果の取得には時間がかかるため、Explicit waitまたはを使用してくださいImplicit wait
  • のようなロケーターは使用しないでくださいspan[@id='ext-gen165']。これらは ExtJs 自動生成されます。
  • この場合、css セレクターも使用できます。#route-search li:nth-of-type(1) > span
于 2013-05-24T10:56:23.893 に答える
0

あなたは電話していませんselectrouteDirection

あなたはおそらく欲しい:

@Test
public void tflpageOpen(){
    WebDriver driver = openWebDriver();
    searchforBus(driver,"H32");
    selectrouteDirection(driver);
}

また、ここでキャストする必要はありません:

((WebElement) towardssouthallLink).click();

もうWebElementとにかくです。

于 2013-05-24T11:19:39.420 に答える