java - 通过 Java 在 Web 浏览器上执行 JavaScript

标签 java javascript browser

有没有什么办法可以点击网络浏览器上的特定链接或使用Java打开浏览器后运行一些javaScripts?

我使用此代码来启动浏览器。但是我怎样才能在这个网络浏览器上运行一些 JS 或使用 JAVA 单击它上面的任何链接呢?

Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
    if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
        try {
            URI uri = new URI("http://stackoverflow.com/");
            desktop.browse(uri);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    }

最佳答案

我认为你应该使用 Selenium !我使用 chromedriver + selenium 进行 Web 自动化测试。

你需要:

http://docs.seleniumhq.org/projects/webdriver/

这是一个打开站点并滚动并删除一些 dom 的简单示例:

        System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
        DesiredCapabilities capabilities = DesiredCapabilities.chrome();

        capabilities.setCapability("chrome.switches",
                Arrays.asList("--disable-extensions"));

        driver = new ChromeDriver(capabilities);

        driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
        driver.manage().timeouts().setScriptTimeout(30, TimeUnit.SECONDS);



        try {
            driver.get("http://sharephim.vn/");
        } catch (Exception e) {
            e.printStackTrace();
        }

        (new WebDriverWait(driver, 10)).until(ExpectedConditions
                .presenceOfElementLocated(By.cssSelector(".adv_items")));


        TimeUnit.SECONDS.sleep(30);
        driver.executeScript("scroll(0, 12250);");
        driver.executeScript("jQuery(\"object\").remove()");

关于java - 通过 Java 在 Web 浏览器上执行 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27170632/

相关文章:

javascript - 我在历史记录列表中的什么位置?

java - 由于 org.eclipse.e4.ui.workbench.swt 中的使用约束冲突, bundle 未解决

java - 如何让 Mockito 模拟按顺序执行不同的操作?

javascript - jQuery:绑定(bind)2个事件并只执行一个

javascript - 读取 $localstorage 的非 AngularJS 方式

browser - 有什么方法可以迁移到 HTML 5 并仍然保证多浏览器兼容性?

python - python webpy框架中缓存控制的正确方法是什么

java - 将 JMenu 向左展开,同时保留默认的文本对齐方式

java - tomcat中受密码保护的应用程序

javascript - 在 AngularJs 中,如何将函数合并为通用函数以用于不同的 Controller ?