Selenium入门问题
public void setUp() throws Exception {selenium = new DefaultSelenium("localhost", 4444, "*iexplore", "http://www.baidu.com/");
selenium.start();
}
public void testUntitled() throws Exception {
selenium.open("/");
selenium.type("kw", "selenium");
selenium.click("su");
selenium.waitForPageToLoad("30000");
verifyTrue(selenium.isTextPresent("selenium_百度百科"));
selenium.click("xpath=//table[@id='1']/tbody/tr/td/a");
}
public void tearDown() throws Exception {
selenium.stop();
super.tearDown();
}
代码就这么多,但是在运行到verifyTrue(selenium.isTextPresent("selenium_百度百科"));
的时候就运行不下去了,就算删掉这行,下一样也不运行,也不报错,有人可以帮忙指导下么?
谢谢回复,我这个就是一个做一个简单的测试例子,在firefox里面录制
(1)进入bairu
(2) 搜索selenium
(3) 点击搜索
(4) 点击第一个搜到的链接,会自己开个页面
想说一下在firefox里面回放以上4步,第4步回放不来,如果可以你也试试
然后变成java 放到eclipse里面执行,也是第4步回放不来
[ 本帖最后由 gaoqiu 于 2010-2-24 14:18 编辑 ] 在IDE上运行也是,最后一步都不运行的
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="" />
<title>1</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">1</td></tr>
</thead><tbody>
<tr>
<td>open</td>
<td>/</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>kw</td>
<td>selenium</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>su</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>//table[@id='1']/tbody/tr/td/a</td>
<td></td>
</tr>
</tbody></table>
</body>
</html> 你描述的运行不下去是什么意思啊?
能不能把运行时的情况贴图,或者把运行时控制台的打印信息copy到这里看下,你这样说不运行搞不清楚是selenium本身的问题,还是代码的问题造成,或者是别的什么原因,所以要提供更多的诊断信息啊~ 才看到,你用的是iexplore浏览器,iexplore浏览器对xpath的支持很不好
建议你用firefox来测试看看"*firefox",是不是有同样问题出现
如果一定用iexplore浏览器,尽量少用xpath来识别元素,或者只写简单的xpath,不要写复杂的。不然就像你说的不运行要不就是死慢,你说的不运行可能就是因为太慢了,让你觉得不运行了,哈哈哈哈~~~~
iexplore浏览器建议用dom的方式提供元素的识别,所以javascript要熟点了,呵呵~~
最好还是用它自带的“id=xxxxx”或"name=xxxxx"或"link=xxxxxx"的方式,这样识别是比较快兼容性也比较好的我猜,呵呵
你代码里的//table[@id='1']/tbody/tr/td/a应该是个link,就用"link=链接的文本"来替换试试看啊
补充一点:ie浏览器在执行selenium.waitForPageToLoad("30000");这样的语句时有时也会有问题,如果不是全页面刷新的话,这个问题有遇到过,也请教过人,也不知道是什么原因造成的。
[ 本帖最后由 park_p 于 2010-2-24 09:19 编辑 ] 谢谢楼上回复,我这个就是一个做一个简单的测试例子,在firefox里面录制
(1)进入bairu
(2) 搜索selenium
(3) 点击搜索
(4) 点击第一个搜到的链接,会自己开个页面
想说一下在firefox里面回放以上4步,第4步回放不来,如果可以你也试试
然后变成java 放到eclipse里面执行,也是第4步回放不来 被你说的我在本地跑了一遍代码,根本执行就是对的,第四步是执行了的。
你觉得执行不来是因为selenium做了点击搜索出的第一个链接动作就退出了,整个执行就结束了。你看不到执行结果而已,执行是正确的,我这里点击并打开了搜索到的第一个页面了。
你在selenium.click("xpath=//table[@id='1']/tbody/tr/td/a");这句后面加上Thread.sleep(10000);停个十秒钟,就看到selenium打开了搜索到的第一个页面,也就是正确执行了点击第一个链接的动作,你再试试吧~ 我试了下,是可以跑的package com.test;
import com.thoughtworks.selenium.SeleneseTestCase;
public class Baiduextends SeleneseTestCase{
public void setUp() throws Exception{
setUp("http://www.baidu.com","*firefox D:\\Program Files\\Mozilla Firefox\\firefox.exe");
//System.out.println("data:"+data);
}
public void testUntitled() throws Exception {
selenium.open("/");
selenium.type("kw", "selenium");
selenium.click("su");
selenium.waitForPageToLoad("30000");
verifyTrue(selenium.isTextPresent("selenium_百度百科"));
selenium.click("xpath=//table[@id='1']/tbody/tr/td/a");
}
public void tearDown() throws Exception {
selenium.stop();
super.tearDown();
}
} 试了下,是OK的,一定要等新的页面完全出来再stop record 用你的HTML代码在火狐上试过了,可以运行,最后一步有警告而已。没大碍。:victory: :victory: :victory: :victory:
学习
:) :) :) :) :)
页:
[1]