Selenium 断言文本

Selenium AssertText

我想在继续之前断言页面上存在一串文本,但我遇到了问题。

我正在使用 Selenium WebdriverJava。这是我试过的代码:

String str2 = driver.findElement(By.id("ctl00$MainContent$cklRepair")).getText();
Assert.assertTrue(str2.contains("text"), "Lubrication");

boolean textFound = true;
try {
    driver.findElement(By.id("ctl00_MainContent_cklRepair_10"));
    textFound = true;
}catch (Exception e) {
    textFound = false;
}

我想验证润滑是否存在。

HTML:

 <span class="label"> 
    <input id="ctl00_MainContent_cklRepair_10" type="checkbox" value="Lubrication,600" onclick "javascript:setTimeout('__doPostBack(\'ctl00$MainContent$cklRepair\',\'\')', 0)" name="ctl00$MainContent$cklRepair"> 
        <label for="ctl00_MainContent_cklRepair_10">Lubrication</label>

str2 已经 returns 要比较的字符串,而 contains() 如果 str2 包含 Lubrication 文本则进行搜索。

Assert.assertTrue(str2.contains("Lubrication"));

而且,刚刚查看了选择器,您正在使用的选择器并未返回文本。您可以使用以下 xpath 代替

//input[contains(@id,'MainContent_cklRepair')]//..//label

完整的代码块应该如下所示:

By byXpath = By.xpath)("//input[contains(@id,'MainContent_cklRepair')]//..//label");
String str2 = driver.findElement(byXpath).getText();
Assert.assertTrue(str2.contains("Lubrication"));