gpt4 book ai didi

javascript - 如何在没有 ID (Java) 的 Selenium 中单击 Javascript 按钮?

转载 作者:行者123 更新时间:2023-11-30 07:05:16 30 4
gpt4 key购买 nike

我正在使用 Selenium 在 Java 中设置一个程序。

在程序开始时,我在程序中使用的 Chrome 扩展程序会随 Chrome 实例一起加载。

Chrome 然后导航到该页面,选择所有框,并且应该单击由于扩展程序而出现的页面上的按钮。

所以我试图单击该按钮,但它是一个通过扩展出现在页面上的 Javascript 按钮。不过,没有我可以明确使用的 ID。

当我检查元素时,我看到的只是:

<a href="javascript:void(0);" class="selected button-task" 
style="width: 140px; margin-left: 5px; height: 23px;">
<img src="websiteimage.png here" width="20px">Selected Task</a>

与我可以点击的其他内容不同,我没有可以找到的类型(复选框、按钮等)或特定 ID。但重要的是我点击这个按钮。我应该怎么办?

当我使用这个时,我收到此错误:

Exception in thread "main" org.openqa.selenium.InvalidSelectorException: invalid selector: 
Unable to locate an element with the xpath expression //a[contains@class,'selected'] and contains(@class, 'repost-selected button-task') and contains(text(), 'Repost Selected') because of the following error:

SyntaxError: Failed to execute 'evaluate' on 'Document':
The string '//a[contains@class,'selected'] and contains(@class, 'repost-selected button-task') and contains(text(), 'Repost Selected')' is not a valid XPath expression.

谢谢!

最佳答案

But it is important I click this button. What should I do?

您可以使用以下方法单击此按钮:-

WebDriverWait wait = new WebDriverWait(driver,10);
  • 使用By.cssSelector():-

    wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("a.selected.button-task"))).click();
  • 使用By.linkText():-

    wait.until(ExpectedConditions.elementToBeClickable(By.linkText("Selected Task"))).click();
  • 使用By.partialLinkText():-

    wait.until(ExpectedConditions.elementToBeClickable(By.partialLinkText("Selected Task"))).click();
  • 使用By.xpath():-

    wait.until(ExpectedConditions.elementToBeClickable(By.xpath(".//a[normalize-space()='Selected Task']"))).click();

关于javascript - 如何在没有 ID (Java) 的 Selenium 中单击 Javascript 按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40252871/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com