0
<table id="ext-comp-1389" class="x-btn x-btn-text-icon " cellspacing="0" style="width: auto;">
<tbody class="x-btn-small x-btn-icon-small-left">
<tr>
<tr>
<td class="x-btn-ml">
<td class="x-btn-mc">
<em class="x-btn-split" unselectable="on">
<button id="ext-gen128" class="x-btn-text create" type="button">New</button>
</em>
</td>
<td class="x-btn-mr">
<i>&nbsp;</i>
</td>
</tr>
<tr>
</tbody>
</table>

上面是方式,新建按钮出现在 HTML 文件中......

按钮的行为是它旁边有一个“+”号......只有当它被点击“+”号时,才会显示选项列表......当它被点击时按钮没有任何反应...

我正在尝试使用 Selenium Webdriver 自动执行此操作...下面是我单击按钮的最终方式...

private static int buttonwidth=24;//value got from firebug computation tab...
private static final int Xoffset = (buttonwidth/2)+6;
private static final int Yoffset = 0;
private static int buttonwidth1=42;   
private static final int Xoffset1 = (buttonwidth/2)-6;
private static final int Yoffset1 = 0;
.......    
......
.......


WebElement ele = driver.findElement(By.xpath("//*[@id='ext-gen128']"));//new button's id
Actions build = new Actions(driver);
build.moveToElement(ele, Xoffset, Yoffset).click().build().perform();
WebElement ele1 = driver.findElement(By.xpath("//*[@id='ext-comp-1389']/tbody/tr[2]/td[2]/em"));
Actions build1 = new Actions(driver);
build1.moveToElement(ele, Xoffset1, Yoffset1).click().build().perform();

按钮的布局如下,Em 类的宽度为 42,Button 的宽度为 24……它们的快照也是如此……

Em_Class 布局

NewButton_Layout

新按钮图像

谁能帮我解决这个问题?我应该定位哪个坐标和对象?

4

2 回答 2

2

moveToElement(ele,x,y)方法将鼠标移动到元素左上角的偏移处。

所以我想你必须做一些计算来确保你得到正确的坐标来点击+符号。

于 2012-06-14T07:22:27.803 回答
1

此类问题的最佳解决方案是,使用 Sahi ..发现它易于使用并且具有良好的功能.. 使用命令 _click(_xy(_cell("New"),-5,5));

于 2012-06-18T18:58:47.317 回答