代码之家  ›  专栏  ›  技术社区  ›  Mary

为什么我的硒测试不能在沙盒登录页面上工作?

  •  -1
  • Mary  · 技术社区  · 8 年前

    我正在使用Java Junit在一个群建网站上做一些测试,测试一直持续到打开paypal沙盒页面。一旦pay pal沙盒页面打开,sendKeys()函数将不会输入电子邮件地址,页面加载缓慢,因此我使用了线程。sleep尝试减慢sendkeys的激活速度,因为我认为这可能有助于解决发送密钥仍然无法工作的问题。

    代码如下:

    public class PricesTest {
    
    private Robot r;
    
    private WebDriver webDriver;
    
         @Before 
         public void before() throws AWTException {
             ChromeOptions options = new ChromeOptions();
             options.addArguments("--start-maximized");
             webDriver = new ChromeDriver(options);     
        }
    
    
        @Test 
        public void buyTicket() throws InterruptedException, AWTException {
         Robot r = new Robot();
         webDriver.navigate().to("https://adamrate.github.io/groupThreeProject/#/price");
         Thread.sleep(500);
         r.mouseMove(1300, 680);
         Thread.sleep(500);
         int buttons = InputEvent.BUTTON1_DOWN_MASK;
         r.mousePress(buttons);
         r.mouseRelease(buttons);
    
        Thread.sleep(3000); 
       webDriver.findElement(By.cssSelector("#email")).sendKeys("qac@gmail.com");
    }
    }
    

    webDriver。findElement(由.cssSelector(“#email”()。发送键(“qac@gmail.com");

    通过右键单击并检查页面,然后右键单击HTML代码并右键单击以复制,将CSS手动复制到选择器中->复制选择器我不确定是什么问题,但我认为可能是因为我正在使用pay pal的发送框环境。有人能建议如何解决这个问题,或者至少解释一下发生了什么吗。我对Java和Junit还是相当陌生的。我试着用谷歌搜索答案,但没有成功。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Kapil    8 年前

    该email id字段位于iframe内,所有其他元素也位于iframe内。因此,在访问iframe的任何元素之前,需要切换到iframe-

        r.mouseRelease(buttons);
        WebDriverWait wait = new WebDriverWait(driver, 120);
     wait.until(ExpectedConditions.visibilityOfElementLocated(By.name("injectedUl")));  
            webDriver.switchTo().frame(driver.findElement(By.name("injectedUl")));
            webDriver.findElement(By.cssSelector("#email")).sendKeys("qac@gmail.com");