弹出滚动不在selenium webdriver中工作

时间:2016-05-26 11:01:24

标签: selenium

  1. 我在mozilla firefox中运行我的脚本我想滚动弹出窗口我 应用了这么多方法,但对我来说并不适用

    1. 我使用keys.tab来访问该元素,但无法使用senkeys("xyz@gmail.com)
    2. 在该文本字段中输入文字
    3. 我使用了滚动方法

      JavascriptExecutor js = (JavascriptExecutor) driver;
      js.executeScript("document.getElementById('youama-email').scrollIntoView(true);");
      

      发生了一些例外

    4. 3.我使用了Moveto元素方法但得到了异常

      WebElement element = driver.findElement(By.id("youama-email"));         
      

      操作

       actions = new Actions(driver);     
       actions.moveToElement(element);    
       actions.click();       
       actions.perform();
      
      1. //初始化Javascript执行程序

         JavascriptExecutor js = (JavascriptExecutor) driver;
        
      2. //垂直滚动网页内容(例如100像素)

            js.executeScript("arguments[0].scrollTop =
             arguments[1];",driver.findElement(By.id("<div-id>")), 100);
        

        请帮我滚动并输入电子邮件以及其他内容 滚动后显示的字段[![输入图像说明 这里] [1] [1]

        [1]:http://i.stack.imgur.com/D0hqI.png

1 个答案:

答案 0 :(得分:0)

试试这段代码。我认为你没做的是等待我做的元素可见。请参阅以下代码。它运行正常。

WebDriver driver = new FirefoxDriver();
    driver.manage().window().maximize();
    driver.get("http://wyomingvapor.com/");
    driver.findElement(By.xpath(".//*[@id='header']/div/div[2]/div/a[1]")).click();


    WebDriverWait wait = new WebDriverWait(driver, 10);
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='y-to-register']/input")));


    driver.findElement(By.xpath(".//*[@id='y-to-register']/input")).click();


    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='youama-firstname']")));

    driver.findElement(By.xpath(".//*[@id='youama-firstname']")).sendKeys("xyz@gmail.com");
    Thread.sleep(2000L);


    Robot robot  = new Robot();
    robot.keyPress(KeyEvent.VK_TAB);
    robot.keyRelease(KeyEvent.VK_TAB);

    robot.keyPress(KeyEvent.VK_TAB);
    robot.keyRelease(KeyEvent.VK_TAB);

    robot.keyPress(KeyEvent.VK_X);
    robot.keyRelease(KeyEvent.VK_X);

    robot.keyPress(KeyEvent.VK_Y);
    robot.keyRelease(KeyEvent.VK_Y);

    robot.keyPress(KeyEvent.VK_Z);
    robot.keyRelease(KeyEvent.VK_Z);

如果你仍然坚持,请回答我,Jyotsana。 快乐学习: - )