Selenium XPATH如何从输入id标签下面的Span标签获取文本

时间:2016-07-29 11:05:31

标签: python-2.7 selenium xpath selenium-webdriver

我有以下html代码段:

<div>
    <span class="gwt-InlineLabel myinlineblock" style="display: none;" aria-hidden="true">Go to row</span>
    <input id="data_configuration_view_preview_ib_row" class="gwt-IntegerBox marginleft red" type="text" size="8"/>
    <span class="gwt-InlineLabel error myinlineblock marginleft" style="width: 7ex;" aria-hidden="false">Error!</span>
</div>

我正在尝试找到文本错误!

我从输入id标签开始,因为它有一个ID。我无法转到具有文本错误的span标记!

我从id开始的xpath是:

//input[@id="data_configuration_view_preview_ib_row"]

我试过了:

//input[@id="data_configuration_view_preview_ib_row"]/span[contains(text(), "Error!")]

我可以使用什么CSS或XPath来查找文本错误!?

我设法使用以下Xpath找到元素:

//input[@id="data_configuration_view_preview_ib_row"]//following-sibling::span[contains(text(), "Error!")]

谢谢Riaz

2 个答案:

答案 0 :(得分:1)

使用轴update_option('comment_registration',true); custom_form() 获取同一级别的下一个元素:

following-sibling

您也可以使用CSS选择器:

//input[@id="data_configuration_view_preview_ib_row"]/following-sibling::span

答案 1 :(得分:1)

您可以将cssSelector用作:

  • error

    一起使用
    span.error
    
  • 使用ID data_configuration_view_preview_ib_row

    #data_configuration_view_preview_ib_row + span.error
    

或者您可以将xpath用作:

  • error

    一起使用
    //span[contains(@class, 'error')]
    
  • 使用preceding id data_configuration_view_preview_ib_row

    //span[preceding::*[@id = 'data_configuration_view_preview_ib_row']]
    
  • 使用preceding-sibling id data_configuration_view_preview_ib_row

    //span[preceding-sibling::*[@id = 'data_configuration_view_preview_ib_row']]
    

希望它有所帮助.. :)