Behat / Mink通过xpath查找元素

时间:2018-04-17 14:34:47

标签: html behat mink

我试图在Behat和Mink上下文中使用XPath访问一个元素一个没有但我的函数似乎无法找到它的元素

这是元素结构:

 <a data-iskeynav="true" data-test-id="compose-button" href="/d/compose/4661075315" class="e_dRA l_T cn_dBP cg_FJ k_w r_P A_6EqO u_e69 p_R S_n C_52qC I_Z1UEcsX D_F H_6VdP gl_C ab_C en_0 M_1Eu7sD ir3_Z1FS2Mn it3_dRA" role="button" 
aria-label="Compose" tabindex="20">Compose</a>

这是我的PHP代码

    $page = $this->getSession()->getPage();
    $element = $page->find('xpath', '//a[@data-test-id = "' . $id . '"]');

我甚至使用了这个XPath,由浏览器复制但没有成功

//*[@id="app"]/div[1]/div/div[1]/nav/div/div[1]/a

2 个答案:

答案 0 :(得分:0)

您应该尝试向a添加条件,该条件具有某个属性值或属性中包含某些值

示例:

css:#app a[data-test-id=compose-button]
css:#app a[href*=compose]

xpath://*[@id='app']//a[@data-test-id='compose-button']
xpath://*[@id='app']//a[contains(@href, 'compose')]

答案 1 :(得分:0)

尝试使用contains关键字:

应该是:

//a[contains(@data-test-id, '"'. $id . '"')]