1

所以我知道如何使用 Selenium,我想创建一个聊天机器人。但是,我无权访问源代码,并且聊天是自定义编写的页面。此页面正在发出 GET 请求,然后该站点正在返回我想要的内容。我想使用 Selenium 运行 javascript(我知道该怎么做),它要么等待下一个 GET 返回,要么返回最新的 GET 返回。那时我可以解析出我不需要的东西。

我曾尝试寻找一个 javascript 函数来执行此操作,但我所能做的就是找到侦听请求而不是响应的函数。谢谢!注意:我将在接下来的一段时间内保持在此页面上的活动,所以如果您需要代码等,请务必询问!

4

1 回答 1

0

如何使用 fluentWait() 机制等待所有 ajax:

public WebElement fluentWait(final By locator){
        Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
                .withTimeout(30, TimeUnit.SECONDS)
                .pollingEvery(5, TimeUnit.SECONDS)
        .ignoring(org.openqa.selenium.NoSuchElementException.class);
        WebElement foo = wait.until(
                new Function<WebDriver, WebElement>() {
                    public WebElement apply(WebDriver driver) {
                        return driver.findElement(locator);
                    }
                }
        );
        return  foo;              }     ;

fluentWait(By.xpath(...blablabla...));
//fluentWait(By.cssSelector(...blablabla...));

然后能够像这样进行js注入:

 public void jsCodeExecution(String jsCode){
        JavascriptExecutor js = (JavascriptExecutor)driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(jsCode);
        js.executeScript(stringBuilder.toString());
    }

或立即使用 jsInjection。JavaScript 如何处理 AJAX 响应

于 2012-11-28T13:02:40.893 回答