2017-09-06 91 views
1

讓我解釋一下問題陳述: 我想爲使用硒的頁面設計頁面對象模型。要求是,在多個瀏覽器上執行的腳本將使用這個類。我應該如何處理我的Page類中的元素定位器?我能想到的是在硒中處理多個瀏覽器的最佳方式是什麼?

  1. 獲取驅動程序對象,並使用if else,選擇瀏覽器特定的XPath來查找元素。就像驅動程序是chrome然後找到ChromeElement一樣。

  2. 爲不同的瀏覽器創建不同的頁面類。

  3. 創建基礎頁面類並基於瀏覽器對其進行擴展。

什麼是最好的方法?什麼是在工業中使用?

+0

不需要爲每個瀏覽器創建不同的類,因爲大多數xpath或其他定位器都可以在所有瀏覽器中運行。有一些對象可能需要不同的xpath,我們可以在頁面對象中爲單個元素使用多個xpath或locator。 – Murthi

回答

0

無論您使用哪種瀏覽器,xpaths都是相同的。 使腳本能夠在多個瀏覽器中工作,您可以爲不同的瀏覽器創建多個TestNg套件,併爲所有套件使用相同的腳本。 所有你需要改變的套件是瀏覽器類。 考慮以下腳本

您可以一次運行整個代碼。所有的測試套件,對其他

class MultipleBrowser{ 
 
    
 
//for Firefox 
 
@Test 
 
public void FirefoxBrowser() 
 
{ 
 
WebDriver driver = new FirefoxDriver(); 
 
driver.get("http://www.google.com"); 
 
driver.findElement(By.id("lst-ib")).sendKeys("Automating in firefox Browser"); 
 
} 
 
    
 
//for ChromeBrowser 
 
@Test 
 
public void ChromeBrowser() 
 
{ 
 
    WebDriver driver = new ChromeDriver(); //only the class is changed from firefoxDriver to ChromeDriver 
 
driver.get("http://www.google.com"); 
 
driver.findElement(By.id("lst-ib")).sendKeys("Automating in Chrome Browser"); 
 
} 
 
    
 
//for InternetExplorer 
 
@Test 
 
public void IEBrowser() 
 
{ 
 
WebDriver driver = new InternetExplorerDriver(); //only the class is changed from ChromeDriver to IEDriver 
 
driver.get("http://www.google.com"); 
 
driver.findElement(By.id("lst-ib")).sendKeys("Automating in IE Browser"); 
 
} 
 
} 
 

+0

感謝您的回覆,但我的問題是在Page類中處理多個瀏覽器,而不是在測試腳本/套件中。 –

2

這完全在你的AUT取決於(應用測試)後執行一個。如果網頁上的同一webelement有不同的定位器(例如,多語言網站),則使用屬性文件來存儲webelements並按照您的頁面命名(例如,對於HomePage類,您可以有不同的文件HomePage。屬性(英文),HomePage_it.properties(意大利語)等)

通常情況下,如果您使用CSS進行位置webelement,幾乎每個瀏覽器都會發現相同。

相關問題