我想右键单击并转到第五个选项,即“复制链接地址”。
我尝试了以下代码,这是我在互联网上能找到的唯一东西
Actions actions = new Actions(driver);
WebElement elementLocator = driver.findElement(By.xpath("//*[(@id = \"u_0_1n\")]"));
TimeUnit.SECONDS.sleep(2);
actions.contextClick(elementLocator).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.RETURN).build().perform();
此代码实际上向下滚动页面,而不是向下移动右键单击菜单,就好像右键单击菜单从未存在过一样。
最佳答案
我不建议使用上下文点击,因为它违反了 Parallel Testing Best Practices
测试需要是 small, atomic, and autonomous并且您当前的方法假设浏览器必须处于焦点状态。这意味着您既无法在测试运行时执行任何操作,也无法并行运行测试。
所以我建议:
- 摘录href您要点击的链接的属性
- 使用JavascriptExecutor和 Window.open()函数以便在新选项卡中打开链接
- Switch到新标签页
示例代码:
WebElement link = driver.findElement(By.xpath("//*[(@id = \"u_0_1n\")]"));
String url = link.getAttribute("href");
driver.executeScript("window.open('" + url + "');");
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.numberOfWindowsToBe(2));
driver.switchTo().window(driver.getWindowHandles().stream().reduce((f, s) -> s).orElse(null));
关于java - 处理 selenium java 中的右键单击菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57840892/