0
我有一套希望使用硒和Chrome執行的Cucumber測試。我的大部分測試都很好。我目前正在嘗試參數化一個特定的步驟,以便任何使用測試的人都可以簡單地命名他們想要的元素,並且測試會找到它們。Selenium通過Java中的文本提取元素的ID
黃瓜測試看起來是這樣的:
When I go to the "Inventory"/"Inventory" application
And I search the "Description" field for "a"
我能得到的時候語句參數很容易,但並聲明是給我多一點麻煩。該頁面本身擁有多套具有一致的ID計劃表的用字「描述」標題中的XPath看起來是這樣的:
//label[@id='m6a7dfd2f_ttrow_[C:2]_ttitle-lb']
和輸入字段此XPath
//td[@id='m6a7dfd2f_tfrow_[C:2]-c']/input
對於「C:」引用緊跟其後的輸入框,位於標籤下方的房間,有相同的ID方案,僅數以下有此XPath
//td[@id='m6a7dfd2f_tfrow_[C:3]-c']/input
所以每個標籤和輸入框似乎改變了。該數字對於標籤和相應的輸入值都是相同的。我想一些如何掃描頁面的單詞「描述」,並提取與它關聯的元素的ID,然後截斷它的數字。我已經設置了持有其餘的變量,它會希望如下:
@When("^I search the \"([^\"]*)\" field for \"([^\"]*)\"$")
public void i_search_the_field_for(String searchField, String searchItem) throws Throwable {
String baseinputXPath = "//td[@id='m6a7dfd2f_tfrow_[c:";
String endinputXPath = "]-c']/input";
String elementNumber = "The return of some sort of method based on searchField";//TODO
driver.findElement(By.xpath(baseinputXPath + elementNumber + endinputXPath)).clear();
driver.findElement(By.xpath(baseinputXPath + elementNumber + endinputXPath)).sendKeys(searchItem);
driver.findElement(By.id("search_button_img")).click();
如果有一種方法可以拉出僅基於描述文字數量,這將是超級有用。
這工作就像一個魅力。我現在可以通過傳入一個變量來進行描述。謝謝。 – Jrawr