51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1730|回复: 1
打印 上一主题 下一主题

IDE录制转Junit4 webdriver的java代码只能打开Firefox求原因

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2015-9-24 14:15:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 windanchaos 于 2015-9-24 14:18 编辑

使用selenium IDE录制打开百度网页,输入关键词并查找,然后打开搜索结果的网页。
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <head profile="http://selenium-ide.openqa.org/profiles/test-case">
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  6. <link rel="selenium.base" href="https://www.baidu.com/" />
  7. <title>baidu</title>
  8. </head>
  9. <body>
  10. <table cellpadding="1" cellspacing="1" border="1">
  11. <thead>
  12. <tr><td rowspan="1" colspan="3">baidu</td></tr>
  13. </thead><tbody>
  14. <tr>
  15.         <td>open</td>
  16.         <td>/</td>
  17.         <td></td>
  18. </tr>
  19. <tr>
  20.         <td>click</td>
  21.         <td>id=kw</td>
  22.         <td></td>
  23. </tr>
  24. <tr>
  25.         <td>type</td>
  26.         <td>id=kw</td>
  27.         <td>周杰伦</td>
  28. </tr>
  29. <tr>
  30.         <td>click</td>
  31.         <td>id=su</td>
  32.         <td></td>
  33. </tr>
  34. <tr>
  35.         <td>open</td>
  36.         <td>/s?ie=utf-8&amp;f=8&amp;rsv_bp=0&amp;rsv_idx=1&amp;tn=baidu&amp;wd=%E5%91%A8%E6%9D%B0%E4%BC%A6&amp;rsv_pq=8a16b64b00009083&amp;rsv_t=9a0e0vTsQQyLB4FqW58OWK6O6pv7OKJ42gHcR7MtcYs7VgkirsM8iHDIlA4&amp;rsv_enter=1&amp;rsv_sug3=1</td>
  37.         <td></td>
  38. </tr>
  39. <tr>
  40.         <td>click</td>
  41.         <td>link=周杰伦_百度百科</td>
  42.         <td></td>
  43. </tr>
  44. </tbody></table>
  45. </body>
  46. </html>
复制代码


接着另存为java JUnit4 webdriver 代码,并修改其中的乱码。
  1. package com.selenium.Glen;

  2. import java.util.regex.Pattern;
  3. import java.util.concurrent.TimeUnit;
  4. import org.junit.*;
  5. import static org.junit.Assert.*;
  6. import static org.hamcrest.CoreMatchers.*;
  7. import org.openqa.selenium.*;
  8. import org.openqa.selenium.firefox.FirefoxDriver;
  9. import org.openqa.selenium.support.ui.Select;

  10. public class baidu {
  11.   private WebDriver driver;
  12.   private String baseUrl;
  13.   private boolean acceptNextAlert = true;
  14.   private StringBuffer verificationErrors = new StringBuffer();

  15.   @Before
  16.   public void setUp() throws Exception {
  17.     driver = new FirefoxDriver();
  18.     baseUrl = "https://www.baidu.com/";
  19.     driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  20.   }

  21.   @Test
  22.   public void testBaidu() throws Exception {
  23.     driver.get(baseUrl + "/");
  24.     driver.findElement(By.id("kw")).click();
  25.     driver.findElement(By.id("kw")).clear();
  26.     driver.findElement(By.id("kw")).sendKeys("周杰伦");
  27.     driver.findElement(By.id("su")).click();
  28.     driver.get(baseUrl + "/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=%E5%91%A8%E6%9D%B0%E4%BC%A6&rsv_pq=8a16b64b00009083&rsv_t=9a0e0vTsQQyLB4FqW58OWK6O6pv7OKJ42gHcR7MtcYs7VgkirsM8iHDIlA4&rsv_enter=1&rsv_sug3=1");
  29.     driver.findElement(By.linkText("周杰伦_百度百科")).click();
  30.   }

  31.   @After
  32.   public void tearDown() throws Exception {
  33.     driver.quit();
  34.     String verificationErrorString = verificationErrors.toString();
  35.     if (!"".equals(verificationErrorString)) {
  36.       fail(verificationErrorString);
  37.     }
  38.   }

  39.   private boolean isElementPresent(By by) {
  40.     try {
  41.       driver.findElement(by);
  42.       return true;
  43.     } catch (NoSuchElementException e) {
  44.       return false;
  45.     }
  46.   }

  47.   private boolean isAlertPresent() {
  48.     try {
  49.       driver.switchTo().alert();
  50.       return true;
  51.     } catch (NoAlertPresentException e) {
  52.       return false;
  53.     }
  54.   }

  55.   private String closeAlertAndGetItsText() {
  56.     try {
  57.       Alert alert = driver.switchTo().alert();
  58.       String alertText = alert.getText();
  59.       if (acceptNextAlert) {
  60.         alert.accept();
  61.       } else {
  62.         alert.dismiss();
  63.       }
  64.       return alertText;
  65.     } finally {
  66.       acceptNextAlert = true;
  67.     }
  68.   }
  69. }
复制代码



然后在Eclipse当中运行,只能把firefox打开,之后的步骤都不能跑。
不知道是啥原因。

我使用的selenium版本是selenium-java-2.44.0.jar

请有经验的同学指点一二啊,瓶颈了,多谢多谢
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

推荐
 楼主| 发表于 2015-9-24 17:27:31 | 只看该作者
问题解决,是Firefox版本和selenuim的兼容问题,导致的,将版本改为最新的即解决问题。
回复 支持 1 反对 0

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 14:02 , Processed in 0.065481 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表