gpt4 book ai didi

java - Selenium 中的上下文单击

转载 作者:行者123 更新时间:2023-11-30 06:56:42 27 4
gpt4 key购买 nike

我收到以下 Selenium Webdriver 代码不受支持的命令异常。我尝试用谷歌搜索上下文点击的选项,我可以看到我编写的代码对于上下文点击是正确的。

请帮助我理解我在这里缺少的内容。

package DataProvider;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.UnsupportedCommandException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Action;
import org.openqa.selenium.interactions.Actions;
public class UISelect {

public static void main(String args[]) throws InterruptedException
{
System.setProperty("webdriver.gecko.driver", "C:/Users/Madankumar/Desktop/Gecko Driver/geckodriver.exe");
WebDriver driver=new FirefoxDriver();
driver.navigate().to("http://www.google.com");

driver.manage().window().maximize();

WebElement oWE=driver.findElement(By.linkText("About"));

Actions oAction=new Actions(driver);
oAction.moveToElement(oWE);
oAction.contextClick(oWE).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform();

}

}

最佳答案

我在使用 Geckodriver 的 Firefox 中使用 Selenium 中的操作链时遇到问题,这是由于此错误 https://bugzilla.mozilla.org/show_bug.cgi?id=1292178#c1 如果只是发送 key ,您可以单独发送每个 key 。我的命令依赖于操作,因此我通过使用executeScript 来使用javascript 发送命令来解决这个问题。

以下代码示例来自: http://www.seleniumhq.org/docs/03_webdriver.jsp#selenium-webdriver-api-commands-and-operations

你可以执行任意的javascript来查找元素,只要返回一个DOM Element,它就会自动转换为WebElement对象。

加载了 jQuery 的页面上的简单示例:

WebElement element = (WebElement) ((JavascriptExecutor)driver).executeScript("return $('.cheese')[0]");

查找每个页面上的所有输入:

List<WebElement> labels = driver.findElements(By.tagName("label"));
List<WebElement> inputs = (List<WebElement>) ((JavascriptExecutor)driver).executeScript(
"var labels = arguments[0], inputs = []; for (var i=0; i < labels.length; i++){" +
"inputs.push(document.getElementById(labels[i].getAttribute('for'))); } return inputs;", labels);

发送 key :

// Find the text input element by its name
WebElement element = driver.findElement(By.name("q"));

// Enter something to search for
element.sendKeys("Cheese!");

关于java - Selenium 中的上下文单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41656790/

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