0
使用Codeception驗收測試(使用WebDriver)時,我想知道是否有方法單擊包含特定文本的元素,而該元素不是鏈接或按鈕。我知道它可以使用XPath完成,但我正在尋找一個更可讀的解決方案,例如使用CSS選擇器。有沒有辦法在不使用XPath的情況下在代碼驗收測試中單擊純文本?
使用Codeception驗收測試(使用WebDriver)時,我想知道是否有方法單擊包含特定文本的元素,而該元素不是鏈接或按鈕。我知道它可以使用XPath完成,但我正在尋找一個更可讀的解決方案,例如使用CSS選擇器。有沒有辦法在不使用XPath的情況下在代碼驗收測試中單擊純文本?
沒有具體的例子,可能最好的辦法是使用CSS選擇器查找一組元素,然後遍歷該集合尋找包含的文本。這是一個人爲的例子,我正在尋找一個包含文本「Click here」的TD。
List<WebElement> cells = driver.findElements(By.cssSelector("td.someclass"));
for (WebElement cell : cells)
{
if (cell.getText().contains("Click here"))
{
cell.click();
break; // found it, don't need to keep looping
}
}
如果您想讓您的搜索查找文本,那麼XPath是您唯一的選擇。
CSS選擇器有一些限制:它無法比較HTML文本,因爲無法獲取父元素。所以,您需要使用XPath來比較文本。 –