如何验证元素是否仅包含python

时间:2017-04-18 02:57:06

标签: python python-3.x selenium selenium-webdriver

我正在使用selenium webdriver来验证表格中的单元格,该单元格仅包含文本,而不包含任何标记,如span,link或i。我只想在td [3]字段3时才返回true,到目前为止我只使用

t = driver.find_element_by_xpath('.//table/tbody//tr/td').text
if not t:
    print('no text')
else:
    print('yes text only')
    print(t)

但它不起作用

<tr>
    <td>
        <a>link text</a>
        <div>name</div>
    </td>
    <td>
        <div>field 2</div>
        <!--react text -->
        field 2 number
        <!-- / react text -->
    </td>
    <td>
        field 3
    </td>
    <td>
        <div>
            <button>
                <i>...</i>
            </button>
        </div>
        <div>
            <div>
                text under button
            </div>
        </div>
    </td>
    <td>
        <div>field 5</div>
    </td>
</tr>

//*[@id="app"]/table/tbody/tr[1]/td[1]/a
//*[@id="app"]/table/tbody/tr[1]/td[1]/div
//*[@id="app"]/table/tbody/tr[1]/td[2]/div
//*[@id="app"]/table/tbody/tr[1]/td[3]
//*[@id="app"]/table/tbody/tr[1]/td[4]/div/button/i
//*[@id="app"]/table/tbody/tr[1]/td[4]/div/div/div[1]
//*[@id="app"]/table/tbody/tr[1]/td[5]/div

1 个答案:

答案 0 :(得分:0)

检查此代码一次,它可能对您有帮助。

 List<WebElement> rows=driver.findElements(By.xpath(".//table/tbody//tr/td"));
    for(int i=0;i<rows.size();i++){
    t=driver.findElement(By.xpath(".//table/tbody//tr/td["+i+"]").getText();
        if("".equals(t)||t==null){
            System.out.println("no text");
        }else{
            System.out.println("yes text only");
            System.out.println(t);}