讓我解釋一下問題陳述: 我想爲使用硒的頁面設計頁面對象模型。要求是,在多個瀏覽器上執行的腳本將使用這個類。我應該如何處理我的Page類中的元素定位器?我能想到的是在硒中處理多個瀏覽器的最佳方式是什麼?
獲取驅動程序對象,並使用if else,選擇瀏覽器特定的XPath來查找元素。就像驅動程序是chrome然後找到ChromeElement一樣。
爲不同的瀏覽器創建不同的頁面類。
創建基礎頁面類並基於瀏覽器對其進行擴展。
什麼是最好的方法?什麼是在工業中使用?
讓我解釋一下問題陳述: 我想爲使用硒的頁面設計頁面對象模型。要求是,在多個瀏覽器上執行的腳本將使用這個類。我應該如何處理我的Page類中的元素定位器?我能想到的是在硒中處理多個瀏覽器的最佳方式是什麼?
獲取驅動程序對象,並使用if else,選擇瀏覽器特定的XPath來查找元素。就像驅動程序是chrome然後找到ChromeElement一樣。
爲不同的瀏覽器創建不同的頁面類。
創建基礎頁面類並基於瀏覽器對其進行擴展。
什麼是最好的方法?什麼是在工業中使用?
無論您使用哪種瀏覽器,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");
}
}
感謝您的回覆,但我的問題是在Page類中處理多個瀏覽器,而不是在測試腳本/套件中。 –
這完全在你的AUT取決於(應用測試)後執行一個。如果網頁上的同一webelement有不同的定位器(例如,多語言網站),則使用屬性文件來存儲webelements並按照您的頁面命名(例如,對於HomePage類,您可以有不同的文件HomePage。屬性(英文),HomePage_it.properties(意大利語)等)
通常情況下,如果您使用CSS進行位置webelement,幾乎每個瀏覽器都會發現相同。
不需要爲每個瀏覽器創建不同的類,因爲大多數xpath或其他定位器都可以在所有瀏覽器中運行。有一些對象可能需要不同的xpath,我們可以在頁面對象中爲單個元素使用多個xpath或locator。 – Murthi