如果其中一个子项包含一些文本,如何定义主DIV?使用C#和Selenium

时间:2019-03-28 21:17:59

标签: c# selenium-webdriver

主DIV由其中一个子元素中的文本组成,并且包含按钮,如果存在文本,则需要单击按钮。如果其中一个孩子严格由我需要的文字组成,我该如何定义主div以继续使用它?

结构看起来像:

<Div class="Green"> (Main Div i mentioned in description)
<Div class="Yel">
<Div class="Ora">
<Div class="Pur">
<span>text must be present</span>

我需要定义main div,以便通过findelement进行此操作。然后。

1 个答案:

答案 0 :(得分:0)

您尝试过以下内容吗?

Browser.FindElement(By.XPath("//div[@class='Green' and //span[normalize-space(.)='137']]//button[@class='needed_item']")).Click()

Browser.FindElement(By.XPath("//span[normalize-space(.)='137']/ancestor::div[@class='Green']//button[@class='needed_item']")).Click()

此xpath首先将找到具有137文本跨度的主div。然后单击具有类needed_item的按钮。考虑了xpath的以下结构。

<div @understand='main_div' @class='Green'>
    <div @understand='child_div1'></div>
    <div @understand='child_div2'>
        <span @understand='target_span'> 137 </span>
    </div>
    <div @understand='child_div3></div>
    <div @understand='div with button'>
        <button @class='needed_item'>Target Button</button>
    </div>
 </div>

让我知道结构是否有变化。