当前位置: 首页 > 知识库问答 >
问题:

Selenium webdriver自动化,自动化上下文菜单选项

查修谨
2023-03-14

在selenium(Java)中右键单击后,我无法单击任何元素。它只是做了一个右键点击,而不是点击任何选项,如打开新标签。。。相反,它只是在右键点击之后进行普通点击。谁能帮帮我吗。下面是我的代码

系统setProperty(“webdriver.chrome.driver”、“C:\Selenium\chromedriver.exe”);WebDriver wd=新的ChromeDriver();

    wd.get("http://google.com");
    Thread.sleep(3000); 
    //Point a=wd.findElement(By.linkText("Testing")).getLocation();
    WebElement b=wd.findElement(By.linkText("About"));
    Actions action=new Actions(wd);

    //action.contextClick(b).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).perform();
    action.moveToElement(b);
    Thread.sleep(4000);
    //action.contextClick(b);
    action.contextClick(b);
    action.sendKeys(Keys.ARROW_DOWN).sendKe ys(Keys.ENTER).build().perform();

我也尝试过通过上下文单击并移动到元素,但没有结果。提前谢谢。。

共有1个答案

凤棋
2023-03-14

也许这就是你想要的:

要从上下文菜单中选择项目,您必须使用这样的向下键事件移动鼠标位置:-

Actions action= new Actions(driver);
action.contextClick(b).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.RETURN).build().perform();

资源:从Selenium Webdriver-Java中的右键菜单中选择一个选项

根据请求在评论中添加替代方式,在新标签中打开链接。

    System.setProperty("webdriver.chrome.driver", "Drivers\\chromedriver.exe");
    WebDriver driver= new ChromeDriver();
    driver.get("http://www.google.com/");
    WebDriverWait wait = new WebDriverWait(driver, 30);
    Thread.sleep(3000); 
    WebElement b=driver.findElement(By.linkText("About"));
    Actions action=new Actions(driver);
    action.moveToElement(b).perform();
    Thread.sleep(4000);
    action.keyDown(Keys.CONTROL);
    action.click();
    action.keyDown(Keys.CONTROL).build().perform();
    //action.sendKeys(Keys.RETURN).perform();
    Thread.sleep(4000);
    driver.quit();

build()方法用于将所有列出的操作编译为一个步骤。我们在执行一系列操作时使用build()。如果执行单个操作,可以直接使用perform()。你可以阅读更多关于Actions类的内容。

此外,我再次重申,我无法在有限的时间内找到问题的根源,因此我安排了一项工作。因此,就像我们使用快捷键CTRL单击手动打开“新建”选项卡中的链接一样,您可能需要找到所需的快捷键,您可以参考以下内容:https://support.google.com/chrome/answer/157179?hl=en

希望有帮助:)

 类似资料:
  • 我有一个JavaFX ContextMenu分配给鼠标右键单击一个scrollpane。它会打开,但当您在scrollpane外部单击时,它不会关闭。我可以在scrollpane中添加另一个鼠标事件来隐藏它,但是这只能解决一个问题。主要的问题是,当我单击scrollpane的任何组件时,上下文菜单仍然是打开的。 示例:通过鼠标右键单击打开弹出窗口,然后单击按钮。弹出菜单仍然打开。 文档中说有一个s

  • 我希望在Windows 2008上实现软件的自动化。自动化软件不必与Windows2008兼容(我可以使用远程桌面)。GUI有两个主要区域,左侧是嵌入图像列表,右侧是显示窗格。显示窗格显示所有嵌入的图像在屏幕上的位置(该程序用于构建人机界面[HMI's])。 我需要单击左侧列表中的每个嵌入图像,并从中提取一些数据。问题是;根据选择的主显示文件,嵌入的图像列表将具有不同的名称和不同的长度。 因此,自

  • 想象一下没有自动化构建工具的场景 大部分的软件开发者都会面临下面的情形: 让IDE完成所有的工作. 用IDE来编码,导航到源代码、实现新特性、编译代码、重构代码、运行单元测试,一旦代码写完了,就按下编译按钮。一旦IDE提示没有编译错误测试通过,然后就把代码放入版本控制系统中以便与其他人分享。IDE是非常强大的工具,但是每个人都要安装一套标准的版本来执行上面介绍的任务,当你需要使用一个只有新版IDE

  • 自动化文档一直是我梦想中的一个功能,这次借着公司的项目终于实现了出来,我说过 beego 不仅仅要让开发 API 快,而且让使用 API 的用户也能快速的使用我们开发的 API,这个就是我开发这个项目的初衷。好了,赶紧动手实践一把吧,首先 bee api beeapi 新建一个 API 应用做起来吧。 必须设置在 routers/router.go 中,文件的注释,最顶部: // @APIVers

  • 关于什么是WebDirver,上一节做了简单的描述,环境也在上一章中搭建完成。 下面我们拷贝了官网提供的一个实例。让其在我们的eclipse中运行。 Selenium WebDirver 代码如下: MySel20Proj; org.openqa.selenium.By; org.openqa.selenium.WebDriver; org.openqa.selenium.WebElem