java - Selenium 在页面部分中搜索文本并单击其中的按钮

标签 java selenium selenium-webdriver

我正在使用 Webdriver 和 Java。我的问题是页面分为 2 个部分,两个部分具有相同的名称 //div[@class='sg-content-box sg-content-box--spaced']

我想点击用户 David2211 附近的按钮 Aprobă(他的答案可能首先或第二出现)

我的问题是我不知道如何点击那个特定区域的按钮,为那个特定的用户名

enter image description here

最佳答案

对于这样的事情,您必须使用 XPath,因为我们正在寻找包含特定文本的元素。在这种情况下,我们将寻找一个包含用户名“David2211”的元素,然后是一个包含文本“Aprobă”的按钮。我假设您会使用不同的用户名多次使用此代码,因此我会将其放在一个函数中,以便更容易重用。

函数

public void approveAnswerByUsername(String username)
{
    driver.findElement(By.xpath("//a[contains(.,'" + username
            + "')]/ancestor::div[contains(@class, 'js-answer-element')]//div[contains(@class,'js-approve-button-text')][contains(.,'Aprobă')]")).click();
}

你这样调用它

approveAnswerByUsername("David2211");

此 XPath 相当大且复杂,但它会查找包含指定用户名的 A 标记,然后在 DOM 上查找包含整个的父 DIV answer 然后导航回 DOM 以找到包含“Aprobă”文本的 DIV

关于java - Selenium 在页面部分中搜索文本并单击其中的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45462383/

相关文章:

java - 当 Intellij 插件正确构建代码时,ANTLR4 解析器出现错误

java - 如何在java中将左填充应用于帐号

java - Spring 3.0 安全性不适用于基于注释的 Controller

testing - 设置 Selenium 测试的系统日期

javascript - 什么是仅单击链接(如果存在)的 javascript?

python - 如何查找附加到一个或另一个类的元素? Selenium python

Python Selenium 网页抓取 - 隐藏文本/Javascript?

java - 逐行读取 Transformer 结果 (Java)

java - 如何使用 Selenium Java 从下拉框中的用户输入的自动完成中提取城市列表

java - Until 方法不抛出 timeoutException