首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在selenium中使用javascript监听AJAX请求

在selenium中使用javascript监听AJAX请求
EN

Stack Overflow用户
提问于 2012-11-28 04:59:14
回答 1查看 2K关注 0票数 1

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

我尝试过寻找一个javascript函数来做这件事,但是我所能做的就是找到一个监听请求的函数,而不是响应。谢谢!注意:在接下来的一段时间里,我将在这个页面上保持活跃,所以如果你需要代码或类似的东西,请一定要问!

EN

回答 1

Stack Overflow用户

发布于 2012-11-28 21:02:41

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

代码语言:javascript
运行
复制
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注入:

代码语言:javascript
运行
复制
 public void jsCodeExecution(String jsCode){
        JavascriptExecutor js = (JavascriptExecutor)driver;
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(jsCode);
        js.executeScript(stringBuilder.toString());
    }

或者立即使用jsInjection。How does JavaScript handle AJAX responses

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13592933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档