我们可以使用JavascriptExecutor - 当我的元素由xpath唯一标识时。我想用javascript输入文字

时间:2017-09-21 22:10:01

标签: javascript selenium selenium-webdriver

我正在使用框架,并希望在框架上输入文字。

我有的定位器是由XPath创建的。 我们可以使用JavaScript执行器,在这种情况下输入文本吗?

3 个答案:

答案 0 :(得分:0)

切换到您的框架,找到您的元素,然后您可以使用sendkeys(如果它是文本字段)或使用JavaScriptExecutor执行,如下所示;

C#:

IWebElement name = driver.FindElement(By.Id("elementId"));
((IJavaScriptExecutor)driver).ExecuteAsyncScript("arguments[0].value='Changed Text'", name);

的java:

WebElement name=driver.findElement(By.id("elementId"));
((JavascriptExecutor)driver).executeAsyncScript("arguments[0].value='Changed Text'",name); 

你可以用;

切换到框架
driver.SwitchTo().Frame("frameName");

答案 1 :(得分:0)

有两种方法可以做到:

  • 使用参数

    driver.get("http://google.co.in/");
    JavascriptExecutor js=(JavascriptExecutor)driver;
    WebElement searchInput=driver.findElement(By.name("q"));
    js.executeScript("arguments[0].value='car';", searchInput);
    
  • 使用getElementById()

    driver.get("http://www.netmeds.com/");   
    js.executeScript("document.getElementById('header1_keyword').value='CAR';");
    

答案 2 :(得分:0)

您可以将javascript执行程序用于任何操作,它不会连接到定位器或元素。