当前位置: 首页 > 知识库问答 >
问题:

用selenium实现jquery时出错

卢朝
2023-03-14
@BeforeTest
public void launchbrowser(){
    String baseUrl = "http://www.facebook.com";
    driver.get(baseUrl);
    driver.findElement(By.id("email")).sendKeys("anyman@hotmail.com");
    driver.findElement(By.id("pass")).sendKeys("deltaduck");
    driver.findElement(By.id("loginbutton")).click();

}

@Test
public void test() throws Exception {


    remove();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    append();

}


protected void click(String elementId){
    String script ="document.getElementById('" + elementId + "').click();";

    executeJavascript(script);


}


protected void remove(){
    String remove ="$('userNavigationLabel').remove();";
    executeJavascript(remove);
}

protected void append(){
    String append ="$('privacyFlyoutLabel').append('u_0_f');";
    executeJavascript(append);
}

private void executeJavascript(String script){

    JavascriptExecutor je = (JavascriptExecutor) driver;
    try {
        Thread.sleep(1500);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    je.executeScript(script);       
}

org.openqa.selenium.WebDriverException:$(...).追加不是函数命令持续时间或超时:26毫秒构建信息:版本:'2.43.0',修订:'ACCB3003B9FB8F7CAE30F9669B4C594A065396A6',时间:'2014-09-09 22:22:51'系统信息:主机:'Jarvis',IP:'140.203.209.182',OS.name:'Windows8',OS.arch:'x86',OS.version:'6.2',Java.version:'1.7.0_45'会话B660-803E10E91197驱动程序信息:org.openqa.selenium.firefox.FirefoxDriver功能[{platform=windows,databaseenabled=true,csssselectorsenabled=true,javascriptenabled=true,acceptsslcerts=true,handlesalerts=true,browsername=firefox,webstorageenabled=true,nativeevents=true,locationcacheenabled=true,locationcacheenabled=true Sun.Reflect.DelegatingConstructorAccessorImpl.NewInstance(来源未知)已知来源)在java.lang.reflect.constructor.newInstance(未知来源)在org.openqa.selenium.remote.errorhandler.createthrowable(errorhandler.java:204),在org.openqa.selenium.remote.errorhandler.throwifresponseFailed(errorhandler.java:156),在org.openqa.selenium.remote.remoteWebdriver.execute(remoteWebdriver.java:599),在在sun.reflect.nativeMethodAccessorImpl.Invoke0(原生方法)在sun.reflect.nativeMethodAccessorImpl.Invoke(未知源)在sun.reflect.delegatingMethodAccessorImpl.Invoke(未知源)在java.lang.reflect.methodInvokeImpl.Invoke(未知源)在org.testng.internal.methodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84),在ng.internal.invokerinvokeTestMethods(invoker.java:1231)在org.testng.internal.testmethodworker.java:127)在org.testng.internal.testmethodworker.run(testmethodworker.java:111)在org.testng.internal.testmethodworker.run(testmethodworker.java:111)在org.testng.testmethodworker.run(testmethodworker.java:111)在.suiterunner.privaterun(Suiterunner.java:291)在org.testng.suiterunner.run(Suiterunner.java:240)在org.testng.suiterunnerworker.runsuite(Suiterunnerworker.java:52)在org.testng.suiterunnerworker.run(Suiterunnerworker.java:86)在org.testng.suiterunnerworker.run(Suiterunnerworker.java:86)在run(remotetestng.java:111)在org.testng.remote.remotetestng.initandrun(remotetestng.java:204)在org.testng.remote.remotetestng.main(remotetetes)tng.java:175)由:org.openqa.selenium.WebDriverException:$(...).append不是

共有1个答案

乐正秦斩
2023-03-14

选项:

>

  • 忘了jQuery吧。编写直接访问DOM的代码。

    尝试在该页面中加载jQuery,然后再执行您正在尝试执行的操作。这需要添加script元素来加载jQuery,并调用jQuery.nocract()来还原$。但问题是,不能保证jquery.nocract会在页面上已经运行的异步代码需要使用$之前还原它。我用settimeout做了一些测试,并确定前面启动的异步操作可以在两个script元素之间执行。因此,这个选项实际上可能会导致Facebook所依赖的代码出现故障。

  •  类似资料:
    • 问题内容: 我正在尝试在Chrome上使用Selenium 玩QWOP,但我一直收到以下错误: 在使用以下代码时: 相同的代码在Firefox上可以完美地工作,但是由于我想使用chrome的功能以无头模式运行webgl游戏,因此我无法真正切换到Firefox。 任何解决方法可以使它正常工作? 问题答案: NoSuchElementException selenium.common.exceptio

    • 问题内容: 我需要使用foursquare API搜索场所。当然,它是跨域的。 它在Firefox中没有任何问题,但是在Internet Explorer中(我已经测试过7、8、9)。 我的JavaScript代码如下所示: 在Firefox中,它可以完美显示接收到的数据。在Internet Explorer中,它登录控制台: 我该怎么办? 问题答案: 我在Windows Mobile 7上对此进

    • 我正在尝试完全加载此页面:https://candidat.pole-emploi.fr/offres/emploi/horticulteur/s1m1 我设置了一行代码来处理cookie弹出。 然后,我设置了一些行来单击加载更多结果按钮,以便加载完整的html,然后将其打印出来。 但单击一次后,我发现一条错误消息: 我不知道这意味着什么,也不知道如何修复它

    • jQuery 是一个小型的 JavaScript 库,它通常被用来简化 DOM 和 JavaScript 操作。通过在服务器和客户端之间交换 JSON 数据是使得 Web 应用动态化的完美方式。 JSON 本身是一个很清量级的数据传输格式,非常近似于 Python 的原始数据类型 (数字、字符串、字典和链表等),这一数据格式被广泛支持,而且非常容易解析。 它几年前开始流行,然后迅速取代了 XML

    • 本文向大家介绍Jquery 实现弹出层插件,包括了Jquery 实现弹出层插件的使用技巧和注意事项,需要的朋友参考一下 弹出层的应用还是比较多的,登陆,一些同页面的操作,别人的总归是别人的,自己的才是自己的,所以一直以来想写个弹出层插件。不多废话,直接开始吧! 1:遮罩层  要弹出层,先要用一个遮罩层挡在下面的页面,此遮罩层是全屏的,页面滚动也要有,所以设置 position: fixed;还要有

    • 本文向大家介绍jquery实现弹出层效果实例,包括了jquery实现弹出层效果实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jquery实现弹出层效果的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的jQuery程序设计有所帮助。