秦菲 发表于 2013-7-9 17:53:58

求助:回放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能对位到该对象:


请大家多多帮忙,先谢谢了

joykao 发表于 2013-7-10 12:46:03

不用xpath呢?那个元素不是有id么?为什么不直接用id去找元素?而且貌似你xpath 找到的元素和你截图中的元素又差别啊?xpath找个的是个文本框,但是貌似你需要的元素是个下拉列表哎。。。。

goal1860 发表于 2013-7-11 08:53:39

我 猜测id是动态的,每次都不一样,所以回放会失败。

秦菲 发表于 2013-7-15 11:40:14

恩,元老说的对,ID是变化的,因为界面技术用的是extjs

秦菲 发表于 2013-7-15 11:43:21

回复 2# joykao


   这个输入框和下拉按钮是一个组合,也就是说无论你是点击下拉按钮还是点击输入框,其都会出现下拉内容

我有用程序去点击下拉按钮,可效果是既不报错,也没有实现下拉这个动作

joykao 发表于 2013-7-15 13:22:08

回复 5# 秦菲
好吧。。。。
如果是因为id一直是动态变化的,导致识别不了对象,我建议你用Chrome 下的psychoXpath 插件,用short 方法找到最简化的路径就可以了,也许可以避开你的id一直变化的问题,或者可以用其它的方法比如cssSelector么?或者className吗?
付插件地址:
https://chrome.google.com/webstore/detail/psychoxpath/bpnigkcdmnofjkmojlopmelmhgpbndog

秦菲 发表于 2013-7-17 17:58:38

好的,谢谢元老

秦菲 发表于 2013-7-17 18:02:15

回复 6# joykao

       
    其实我都有试过classname之类的来解决这个问题
可是extjs恶心到连这些都是随时变的,伤心郁闷的我,现在决定用selenium2.0来试着解决问题

十分谢谢元老哈
页: [1]
查看完整版本: 求助:回放selenium,其提示无法找到对象