gpt4 book ai didi

java - 处理 selenium java 中的右键单击菜单项

转载 作者:行者123 更新时间:2023-12-02 00:53:22 25 4
gpt4 key购买 nike

我想右键单击并转到第五个选项,即“复制链接地址”。

我尝试了以下代码,这是我在互联网上能找到的唯一东西

    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并且您当前的方法假设浏览器必须处于焦点状态。这意味着您既无法在测试运行时执行任何操作,也无法并行运行测试。

所以我建议:

  1. 摘录href您要点击的链接的属性
  2. 使用JavascriptExecutorWindow.open()函数以便在新选项卡中打开链接
  3. 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com