求助:回放selenium,其提示无法找到对象
环境:浏览器:IE8.0编程工具:eclipse
系统界面技术:extjs
想要做的操作:实现下拉动作
脚本展示:
import static org.junit.Assert.*;
import Login.Login_Center;
import org.junit.Test;
import com.thoughtworks.selenium.DefaultSelenium;
import com.thoughtworks.selenium.Selenium;
import org.junit.Before;
import java.util.regex.Pattern;
public class Workflow_Portfolio extends Login_Center {
public static void main(String[] agrs){
Workflow_Portfolio w = new Workflow_Portfolio();
w.test();
w.workflow_port();
}
@Test
public void test(){
super.setUp();
}
public void workflow_port(){
selenium.click("xpath=//div[@class='ux-desktop-shortcut-icon workflow-manager-shortcut']");
try {
Thread.sleep(6000);//为了实现等待,可是觉得这个方法不好,还在找更好的方法
selenium.click("xpath=//input[@id='mixedportfoliocombo-1244-inputEl']");//运行到这个的时候,就会报错
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
运行脚本,报错信息ERROR: Element xpath=//input[@id='mixedportfoliocombo-1244-inputEl'] not found
用FireBug获取对象信息:
用Xpath能对位到该对象:
请大家多多帮忙,先谢谢了 不用xpath呢?那个元素不是有id么?为什么不直接用id去找元素?而且貌似你xpath 找到的元素和你截图中的元素又差别啊?xpath找个的是个文本框,但是貌似你需要的元素是个下拉列表哎。。。。 我 猜测id是动态的,每次都不一样,所以回放会失败。 恩,元老说的对,ID是变化的,因为界面技术用的是extjs 回复 2# joykao
这个输入框和下拉按钮是一个组合,也就是说无论你是点击下拉按钮还是点击输入框,其都会出现下拉内容
我有用程序去点击下拉按钮,可效果是既不报错,也没有实现下拉这个动作 回复 5# 秦菲
好吧。。。。
如果是因为id一直是动态变化的,导致识别不了对象,我建议你用Chrome 下的psychoXpath 插件,用short 方法找到最简化的路径就可以了,也许可以避开你的id一直变化的问题,或者可以用其它的方法比如cssSelector么?或者className吗?
付插件地址:
https://chrome.google.com/webstore/detail/psychoxpath/bpnigkcdmnofjkmojlopmelmhgpbndog 好的,谢谢元老 回复 6# joykao
其实我都有试过classname之类的来解决这个问题
可是extjs恶心到连这些都是随时变的,伤心郁闷的我,现在决定用selenium2.0来试着解决问题
十分谢谢元老哈
页:
[1]