Mru*_*sar 5 java selenium extjs webdriver
我正在尝试moveToElement(element,xoffset,yoffset)在FireFox 21中的硒Web驱动程序(java)中使用Actions类,但似乎无法正常工作。我有一个extjs按钮控件,它既可以用作按钮也可以用作下拉菜单(请参阅屏幕截图)。

当我单击“保存更改”部分时,它会保存更改;当我单击附加的下拉按钮时,它会打开列表。请参考DOM源以获取相同的控件。
<td class="x-btn-mc"><em id="ext-gen514" class="x-btn-split" unselectable="on"><button id="btn-ext-comp-1739" class=" x-btn-text save-changes" type="button"><u>
S
</u>
ave Changes
</button></em></td>
Run Code Online (Sandbox Code Playgroud)
现在,我可以单击“保存更改”按钮,但无法通过在moveToElement方法中提供一些偏移位置来单击下拉按钮。
我尝试了以下两种选择:
builder.moveToElement(element).moveByOffset(569,
5).click().build().perform();builder.moveToElement(element, 568, 5).click().build().perform();但两者都不起作用。
控件的尺寸为(117 x 16)
注意:不要被偏移量568,5弄糊涂,因为该偏移量仍然可以单击保存更改按钮。
最新的Web驱动程序尚不支持此方法吗?
小智 5
我遇到过同样的问题。没有使用ClickAndHold()和Release()工作时Click()。我还喜欢在任何x,y坐标上使用百分比,因此它们是相对的。可能会或可能不会帮助您。下面的C#。
IWebElement MarkAs = MarkAsSpan(driver).FindElement(By.Id("btnMarkAs"));
int Width = MarkAs.Size.Width;
int Height = MarkAs.Size.Height;
int MyX = (Width * 95) / 100;//spot to click is at 95% of the width
int MyY = 1;//anywhere above Height/2 works
Actions Actions = new Actions(driver);
Actions.MoveToElement(MarkAs,MyX,MyY);
Actions.ClickAndHold();
Actions.Release();
Actions.Perform();
Run Code Online (Sandbox Code Playgroud)
姆鲁纳尔,
借助以下代码,您将能够在 webdriver(java) 中移动鼠标
Actions actions = new Actions(driver);
WebElement imageSpan = driver.findElement(By.className("badgeFeatured"));
actions.moveToElement(imageSpan);
WebElement subLink = driver.findElement(By.cssSelector("#headerMenu .subLink"));
actions.moveToElement(subLink);
actions.click();
actions.perform();
Run Code Online (Sandbox Code Playgroud)