我正在使用 Webdriver 和 Java。我的问题是页面分为 2 个部分,两个部分具有相同的名称 //div[@class='sg-content-box sg-content-box--spaced']
我想点击用户 David2211 附近的按钮 Aprobă
(他的答案可能首先或第二出现)
我的问题是我不知道如何点击那个特定区域的按钮,为那个特定的用户名
最佳答案
对于这样的事情,您必须使用 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/