如何在selenium中使用JavascriptExecutor右键单击svg元素
How to right click on a svg element using JavascriptExecutor in selenium
我必须右击网页的特定部分。
有一些svg元素在背景层的部分,我需要右键单击。这些svg元素位于不可见的不同层中。下面是HTML代码
svg元素的HTML代码
可见部分的HTML代码(突出显示图像中的div元素,类值包含'z-Timeline-TimelineTrack')如下所示(您也可以在下面的代码中看到svg元素部分)网页可见部分的HTML代码
正如你所看到的,有许多'line'元素…我需要在指定的行上执行右键。
我能够使用下面的xpath
找到一个特定的行元素@FindBy(xpath ="//*[name()='svg']//*[name()='line'][5]")
public WebElement anyAgendaLine;
在互联网上搜索后,我发现我可以使用JavascriptExecutor来点击任何不可见的元素。在发现这个之前,我尝试使用Actions执行上下文菜单点击,给出以下错误
引起的:org.openqa.selenium.interactions.MoveTargetOutOfBoundsException:元素内的偏移量不能滚动到视图中:(2.5,0.5):(对象SVGLineElement)
我的上下文菜单点击代码是这样的:
public static void rightClickAndSelectMenuItem(WebElement objWebElement, WebElement menuItem){
Actions action=new Actions(Setup.driver);
action.contextClick(objWebElement).sendKeys(Keys.ARROW_DOWN).click(menuItem).build().perform();
}
在发现上下文菜单点击不起作用后,我试着点击'line'元素:
(JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", objAgendaPage.anyAgendaLine);
给出如下错误
org.openqa.selenium。WebDriverException:参数[0]。点击不是函数
所以请帮我一下。我甚至不能在这个不可见的"线"元素上执行点击。
为了使用JavaScript右键单击(在此帮助下):
js.executeScript("function contextMenuClick(element){
var evt = element.ownerDocument.createEvent('MouseEvents');
var RIGHT_CLICK_BUTTON_CODE = 2;
evt.initMouseEvent('contextmenu', true, true,
element.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, RIGHT_CLICK_BUTTON_CODE, null);
if (document.createEventObject){
// dispatch for IE
return element.fireEvent('onclick', evt)
}
else{
// dispatch for firefox + others
return !element.dispatchEvent(evt);
}
}; contextMenuClick();", objAgendaPage.anyAgendaLine);
相关文章:
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- 何时可以;我的用户脚本在Javascript中触发右键单击(上下文菜单)
- 如何知道你右键点击谷歌chrome扩展是什么
- 我们可以在HTML中禁用右键单击锚标记吗
- 在动态crm 2011中,右键单击已完成活动的只读文本时,您是否出现错误
- jqGrid - 在右键单击时禁止选择行
- 右键单击夜巡
- JavaScript 左键和右键单击功能
- 如何禁用右键单击以在 JavaScript 中下载图像
- 如何禁用右键单击WordPress网站
- 导致右键单击触发左键单击
- 通过右键单击更改完整日历中事件的背景颜色 - 不起作用
- 在 CkEditor 4.3 中禁用右键单击
- 右键点击标记-谷歌地图V3
- jQuery网站的键盘快捷键,焦点使用左键和右键转到上一个或下一个元素
- 使用Javascript禁用上下文菜单(右键单击)
- 为左键或右键单击附加事件侦听器-onclick'右键单击无效
- 复制右键单击灯箱的操作,就像在github.com上一样
- 按左键或右键无法更改颜色
- 自定义右键单击UI上下文菜单(复制、粘贴、剪切)用于整个应用程序(所有网页)跨所有浏览器而非单个网页