弹出输入文本并将其保存在TestNG上

时间:2014-01-27 16:32:11

标签: selenium popup window

我是自动化测试的新手。我正在使用twitter作为测试网站来学习硒。

我想创建一条新推文,为此我正在使用以下方案。我可以打开“新推文”弹出窗口,但仍然无法在其文本框中输入文字。请帮忙。

先决条件:登录Twitter

  1. 点击屏幕右上角的按钮(用于创建新推文)。 弹出窗口打开
  2. 单击弹出窗口中的文本框以输入文本。 光标在文本框中突出显示,保存按钮启用
  3. 输入一些文字
  4. 点击保存按钮
  5. 对我而言,它一直工作到第2点,之后它不会在文本框中输入文本

    请参阅下面的代码:

    String popUpHandle = driver.getWindowHandle(); 
    
    driver.switchTo().window(popUpHandle);
    
    driver.findElement(By.id("global-new-tweet-button")).click();
    
    driver.findElement(By.xpath("(//button[@type='button'])[123]")).click();
    
    driver.findElement(By.xpath("(//button[@type='button'])[123]")).sendKeys("test tweet");
    
    driver.findElement(By.xpath("//button[@type='button'])[106]")).click();
    

1 个答案:

答案 0 :(得分:0)

@ user3241182

我自己测试了这个。您不需要使用任何窗口处理。 以下代码是一个提供的解决方案,效果很好。

    WebDriver driver = new FirefoxDriver();
    driver.get("https://twitter.com/");
    WebElement username = driver.findElement(By.id("signin-email"));
    username.clear();
    username.sendKeys("your_twitter_handle");
    WebElement pass = driver.findElement(By.id("signin-password"));
    pass.clear();
    pass.sendKeys("your_twitter_passwd");
    WebElement signInButton = driver.findElement(By.xpath("/html/body/div/div[2]/div/div[2]/div[2]/div[2]/form/table/tbody/tr/td[2]/button"));
    signInButton.click();
    WebElement tweetButton = driver.findElement(By.id("global-new-tweet-button"));
    tweetButton.click();
    WebElement tweetBox = driver.findElement(By.id("tweet-box-global"));
    tweetBox.clear();
    tweetBox.sendKeys("This is an automated tweet!");
    WebElement tweetSubmit = driver.findElement(By.xpath("/html/body/div[9]/div[2]/div[2]/div[2]/form/div[2]/div[2]/button"));
    tweetSubmit.click();