2017-06-09 56 views
0

我有這樣的代碼作爲程序的一部分來練習黃瓜,XPath和硒在Java的XPath字符串:繼承使用硒的webdriver和黃瓜

@When("^I select Divany i Kresla from left vertical menu$") 
     public void i_choose_Divany_i_Kresla_from_left_vertical_menu() { 
      driver.findElement(By.xpath("//div[@class='top-left-menu']/ul/li/a")).click(); 
      driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS); 
     } 

它在所有情況相當反覆,一切實際上改變的是我選擇的數據(我可以移至.feature文件中的示例)以及用於訪問頁面元素的xpath。有沒有辦法以某種方式將此步驟移到一個通用類並將其設置爲來自繼承類的xpath?

回答

1

您可以嘗試以下步驟定義,並將子菜單名稱作爲輸入,然後單擊它。

@When("^I select .* from left vertical menu$") 
    public void i_choose_Divany_i_Kresla_from_left_vertical_menu(String menu) { 
     driver.findElement(By.xpath("//div[@class='top-left-menu']/ul/li/a[text()="+menu+"]")).click(); 
     driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS); 
    } 
+0

然而,更好的事情是與黃瓜一起使用頁面對象。不要使用硬編碼的標識符。把它們放入變量或使用PageFactory。否則,如果將來應用程序經歷一些更改,它可能是維護夜間母馬。 –