2017-08-22 119 views
1

如何在Chrome上打開新選項卡。我需要從中獲取一些數據,返回到我的上一個選項卡並輸入數據。我知道如何迭代選項卡,但我無法打開新的選項卡。如何使用操作類在Chrome中打開新選項卡

硒版本:3.5.2
Chrome版本:我使用的是Action class,只使用它來模擬最終用戶的鼠標操作60

package Amazon; 

import java.util.concurrent.TimeUnit; 

import org.openqa.selenium.By; 
import org.openqa.selenium.Keys; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.interactions.Actions; 

public class VerifyAmazonSignInPage { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     System.setProperty("webdriver.chrome.driver", "C://Selenium jars/chromedriver.exe"); 

     WebDriver driver = new ChromeDriver(); 
     driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
     driver.get("http://www.amazon.in"); 
     driver.findElement(By.xpath("//span[text()='Hello. Sign in']")).click(); 
     driver.findElement(By.id("ap_email")).sendKeys("[email protected]"); 
     driver.findElement(By.id("ap_password")).sendKeys("*****"); 
     driver.findElement(By.id("signInSubmit")).click(); 
     Actions act = new Actions(driver); 
     act.keyDown(Keys.CONTROL).sendKeys("t").keyUp(Keys.CONTROL).build().perform(); 
     driver.get("http://www.gmail.com"); 


    } 

} 
+0

[如何使用Selenium WebDriver與Java打開新選項卡?](https://stackoverflow.com/questions/17547473/how-to-open-a-new-tab-using-selenium-webdriver -with-java) – Madhan

+0

這是針對不同版本的硒和不同的瀏覽器。 –

+0

爲什麼你必須使用'Action'類? – Amol

回答

0

動作類是一個硒類,它只能用於自動化基於web的應用程序。打開新選項卡是在網頁瀏覽器上執行的操作,該瀏覽器是獨立應用程序。它可以通過使用java.awt包中的Robot類完成。

1

經驗法則。請勿將其用於其他目的。

在你的情況下,你需要發送密鑰到瀏覽器,你可以使用任何WebDriver接口實現。那麼你想如何打開一個新標籤?

最簡單的方法是發送鍵body元素上打開新的標籤頁 -

driver.findElement(By.tagName("body")).sendKeys(Keys.CONTROL + "t"); 

但在某些場景中,這不工作,所以我更喜歡JavascriptExecutor,我已經在它寫post因爲它是平臺不可知的解決方案。

((JavascriptExecutor) driver).executeScript("window.open('http://gmail.com/','_blank');"); 

注意,在打開新標籤後,你必須照顧switching tab,它不會自動工作。

+0

謝謝@ 4M01我想知道是否可以使用操作類來完成,但無論如何這也有幫助。 –

+0

@GauravThantry'Action'類應該也可以工作,但大部分時間都失敗了。這是我迄今觀察到的。 'SendKeys'不是一個很好的練習來打開一個新標籤頁,它要求瀏覽器處於活動狀態,並將焦點放在瀏覽器上。但是Javascript無論如何工作 – Amol

相關問題