【问题标题】:How to click a button using java如何使用java单击按钮
【发布时间】:2016-01-20 18:54:51
【问题描述】:

我需要从页面中提取所有信息,但是隐藏了部分 html 代码。要查看更多信息,我需要单击一个按钮

 <div class="respButton respBigButton prodLoadOpinions" data-page="2">Załaduj więcej</div>

我应该用什么来解决这个问题?
谢谢

【问题讨论】:

  • 不可能。您不能使用 Java 来单击按钮。 Java 既可以在服务器端运行,也可以作为小程序运行,它无法访问 HTML 元素。您需要使用 JavaScript 或 jQuery 与元素交互。
  • 您可以使用 Selenium WebDriver seleniumhq.org。它将允许您从 java 代码控制您的浏览器

标签: java jquery html


【解决方案1】:

不可能。您不能使用 Java 来单击按钮。 Java 既可以在服务器端运行,也可以作为小程序运行,并且它无法访问 HTML 元素。您需要使用 JavaScript 或 jQuery 与元素交互。

但如果您使用 jQuery,我可以看到它已被标记,您可以通过这种方式在元素上使用 .click() 函数或 .trigger("click")

$(function () {
  $(".prodLoadOpinions").click();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="respButton respBigButton prodLoadOpinions" data-page="2">Załaduj więcej</div>

【讨论】:

    【解决方案2】:

    您应该检查Selenium,它是一个专为网络测试而设计的框架。它可以通过浏览器做所有你能做的事情,用代码。

    【讨论】:

    • 我决定使用 Selenium,但问题是下一个 - 我需要多次单击一个按钮(直到它消失)我编写了以下代码: WebDriver driver = new FirefoxDriver(); driver.navigate().to(url); WebElement button = driver.findElement(By.className("respBigButton")); while (button != null){ Actions actions = new Actions(driver); actions.moveToElement(button).click().perform(); button = driver.findElement(By.className("respBigButton")); }
    • 我有下一个异常 - 元素不再附加到 DOM 你有类似的东西吗?
    • 我将不得不编写一些代码来帮助您,但乍一看您的代码看起来还不错。只是一个小东西,你不需要那个Action的东西,每个WebElement都有click()方法,所以一旦你通过类名获取按钮,调用button.click()
    • 您想说,使用下一个代码会更好: while (button.isDisplayed() { button.click(); button = new driver.findElement(By.className(" respBigButton"));} ??
    猜你喜欢
    • 2018-08-01
    • 2012-08-23
    • 1970-01-01
    • 2021-03-29
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    相关资源
    最近更新 更多