標題編輯:是「Selenium:如何檢查鏈接是否在新標籤中打開?」Selenium:爲什麼.click()在這種情況下不起作用&&如何檢查按鈕是否被點擊?
我需要創建JUnit測試,它應該檢查點擊按鈕是否會導致在新選項卡中打開某個鏈接。 這樣做我遇到了問題:看起來像.click()沒有做它想象的。 下面是HTML的片段:
<div class="small-5 column store-btns">
<a class="google_play_btn" target="_blank" href="https://google.com">
<img class="img-responsive"src="/s/img/buy/google_play_btn_blue.svg" alt>
</a>
<a class="app_store_btn" target="_blank" href="https://apple.com/">
<img class="img-responsive"src="/s/img/buy/app_store_btn_blue.svg" alt>
</a>
</div>
編輯:這裏是我的簡單JUnit測試:
@Before
public void SetUp(){
driver = new SafariDriver();
pause = new WebDriverWait(driver, 2000);
}
@After
public void tearDown(){
driver.close();
driver.quit();
}
@Test:
public void testLink() throws InterruptedException{
driver.get("http://linktotestedpage");
WebElement googlePlayButton = pause.until(ExpectedConditions.visibilityOfElementLocated(By.className("google_play_btn")));
googlePlayButton.click();
List<String> browserTabs = new ArrayList<String>(driver.getWindowHandles());
driver.switchTo().window(browserTabs.get(1));
String titleGP = driver.getTitle();
Assert.assertTrue("Failure: link is ok", titleGP.equals("Google"));
我期待有一個新的Safari瀏覽器選項卡googlePlayButton.click();
後打開,但司機只是退出。 我看到
IndexOutOfBoundsException: Index 1, Size 1
我在哪裏錯了? 謝謝。
我有你的主意,但事情是'googlePlayButton.click();'實際上不執行一個點擊,並沒有新的標籤打開。 – hdf
然後對'browserTabs'進行計數,看看它是否超過'1'。這應該不夠嗎? – Saifur
對不起,賽福爾,我完全把你的問題題目弄糊塗了。 – hdf