试图单击包含空格的超链接

时间:2019-05-02 20:40:05

标签: java selenium hyperlink

我正在尝试使用Java和Selenium单击带空格的超链接。这是代码示例

<h3 class="side menu">
    <a class="side-menu" href="/configurations">
    <span class="menu-icon ca"></span>Configuration
    </a>
</h3>

我尝试使用xpath starts-with并没有运气。

driver.findElement(By.xpath("//a[starts-with(text(),’Configuration’)]")).click();

3 个答案:

答案 0 :(得分:1)

要处理动态元素,请在预期条件下使用WebDriverWaitelementToBeClickable。使用以下Xpath定位策略。

WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath('//a[@class="side-menu"][normalize-space(.)="Configuration"]')));
element.click()

OR

WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath('//a[@class="side-menu"][contains(.,"Configuration")]')));
element.click()

答案 1 :(得分:0)

我认为您所需要的只是添加一个正斜杠:

driver.findElement(By.xpath("//a[starts-with(text(),'/configuration')]")).click();

如果我输入以下内容,它将在Chrome控制台中对我有效:

$x("//a[starts-with(@href,'/configuration')]")

答案 2 :(得分:0)

在为文本编写xpath时,我会使用normalize-space,它将修剪开头和前面的白色字符(空格/制表符/换行符)

这是您应该如何处理的问题。

//a[normalize-space(.)='Configuration']

已使用javascript在chrome控制台中成功为click()测试了xpath。