Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java webdriver sendKeys不';不要等待页面加载_Java_Selenium_Webdriver_Selenium Webdriver - Fatal编程技术网

Java webdriver sendKeys不';不要等待页面加载

Java webdriver sendKeys不';不要等待页面加载,java,selenium,webdriver,selenium-webdriver,Java,Selenium,Webdriver,Selenium Webdriver,我对selenium webdriver有意见,如果有人能帮助我,我将非常感激 环境: selenium-server-standalone-2.31.0.jar/selenium-server-standalone-2.35.0.jar IEDriverServer.exe(试用版2.28-2.35) 示例代码: WebElement href = this.findElement(By.xpath("//A")); href.sendKeys(Keys.ENTER); href.

我对selenium webdriver有意见,如果有人能帮助我,我将非常感激

环境:

  • selenium-server-standalone-2.31.0.jar/selenium-server-standalone-2.35.0.jar
  • IEDriverServer.exe(试用版2.28-2.35)
示例代码:

WebElement href = this.findElement(By.xpath("//A"));    
href.sendKeys(Keys.ENTER);
href.click();
问题:解决这些问题都会对我有帮助

  • href.sendKeys()成功模拟用户单击,但不等待页面加载
  • href.click()无法模拟用户单击,但已成功等待页面加载
  • 我已经搜索了.click()方法的源代码,试图手动创建waitForPageToLoad函数,但是我还没有找到它
  • 我知道我没有提供太多信息,因为我运行测试的应用程序是内部的,所以我无法共享调试链接。但是,如果有任何想法或类似问题的以往经验能够帮助我弄清楚发生了什么,我将不胜感激


    现在,我必须同时执行SendKey和click以获得预期的结果。

    无论何时执行
    。在按钮或链接上单击()
    ,会调用类似“waitTillPageLoads()”的内部方法,因此webdriver会等待下一页完全加载

    我曾经经历过这样一个场景:由于web应用程序太慢,页面加载等待了将近10-15分钟。听起来我知道

    但是
    sendKeys()
    不会等待。因为sendkeys不用于单击,而是用于输入键

    我想你一定有充分的理由这么做

    href.sendKeys(Keys.ENTER);
    
    若您仍然想使用这种方法,您可以隐式地使用隐式等待来等待下一页的元素

    WebDriverWait wait = new WebDriverWait(webDriver, 5);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath")));
    
    请注意:

    你的报价

    href.click() fails to simulate user click, but successfully wait for page to load
    
    可能是因为您尚未将浏览器级别设置为100%


    无论何时执行
    ,请在查看我的答案。在按钮或链接上单击()
    ,会调用类似“waitTillPageLoads()”的内部方法,因此webdriver会等待下一页完全加载

    我曾经经历过这样一个场景:由于web应用程序太慢,页面加载等待了将近10-15分钟。听起来我知道

    但是
    sendKeys()
    不会等待。因为sendkeys不用于单击,而是用于输入键

    我想你一定有充分的理由这么做

    href.sendKeys(Keys.ENTER);
    
    若您仍然想使用这种方法,您可以隐式地使用隐式等待来等待下一页的元素

    WebDriverWait wait = new WebDriverWait(webDriver, 5);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("xpath")));
    
    请注意:

    你的报价

    href.click() fails to simulate user click, but successfully wait for page to load
    
    可能是因为您尚未将浏览器级别设置为100%


    请在

    查看我的答案,您可以在这里做的是在sendKeys操作之后,使用WebDriverWait对结果页面上的元素进行几次等待。这将满足您的需要。

    您可以在这里执行sendKeys操作后,使用WebDriverWait对结果页面上的元素进行几次等待。这将满足您的需要。

    您可以分享错误消息吗?既然您正在单击链接,为什么不使用单击方法而不是发送键?任何具体原因?您应该在执行单击事件后应用等待条件,即
    href.sendKeys(Keys.ENTER)之后在此引用不同的等待条件您可以共享错误消息吗?既然您正在单击链接,为什么不使用click方法而不是send键?任何具体原因?您应该在执行单击事件后应用等待条件,即
    href.sendKeys(Keys.ENTER)之后此处参考不同的等待条件这是正确答案。我没有将浏览器级别设置为100%,但我使用ignoreZoomSetting启动了它,因此应用程序运行时不会出现问题,但不会单击正确的位置。非常感谢。我想在10-15分钟内加载一个页面。我正在使用selenium创建一个监视工具,它可以测量响应时间,而不仅仅是运行测试。所以显式和隐式等待的超时不适合我的需要。再次感谢你的回答。这是正确的答案。我没有将浏览器级别设置为100%,但我使用ignoreZoomSetting启动了它,因此应用程序运行时不会出现问题,但不会单击正确的位置。非常感谢。我想在10-15分钟内加载一个页面。我正在使用selenium创建一个监视工具,它可以测量响应时间,而不仅仅是运行测试。所以显式和隐式等待的超时不适合我的需要。再次感谢你的回答。