zoukankan      html  css  js  c++  java
  • [转载]Selenium実行中にJavaScriptのコードを実行する

    Selenium実行中にJavaScriptのコードを実行する

    JavaScriptで画面の値を取得/設定するコードをメモ。

    WebDriverEx.cs
    // JavaScriptを実行(戻り値なし)
    public static void ExecuteJavaScript(this IWebDriver driver, string script)
    {
        if (driver is IJavaScriptExecutor)
            ((IJavaScriptExecutor)driver).ExecuteScript(script);
        else
            throw new WebDriverException();
    }
    
    // JavaScriptを実行(戻り値あり)
    public static T ExecuteJavaScript<T>(this IWebDriver driver, string script)
    {
        if (driver is IJavaScriptExecutor)
            return (T)((IJavaScriptExecutor)driver).ExecuteScript(script);
        else
            throw new WebDriverException();
    }
    
    
    使い方
    // <input name="hoge">のvalueに「1234567890」を設定
    driver.ExecuteJavaScript("document.getElementsByName('hoge')[0].value = '1234567890';");
    
    // <input name="hoge" maxlength="8">のmaxlengthを削除
    driver.ExecuteJavaScript("document.getElementsByName('hoge')[0].removeAttribute('maxlength');");
    
    // ページのタイトルをstring型で取得
    string str = driver.ExecuteJavaScript<string>("return document.title;");
    
    // ブラウザの現在時刻をDateTime型で取得
    DateTime date = driver.ExecuteJavaScript<DateTime>("return new Date();");
    

    IWebElementをJavaScriptで操作する。

    By.IdやBy.Nameで取得したIWebElementをJavaScriptで操作するには、
    スクリプトの後に引数を追加します。

    WebDriverEx.cs
    // JavaScriptを実行(戻り値なし)
    public static void ExecuteJavaScript(this IWebDriver driver, string script, params object[] args)
    {
        if (driver is IJavaScriptExecutor)
            ((IJavaScriptExecutor)driver).ExecuteScript(script, args);
        else
            throw new WebDriverException();
    }
    
    
    使い方
    // argumentsに引数の配列が渡されます。
    IWebElement e = driver.FindElement(By.Name("hoge"));
    driver.ExecuteJavaScript("arguments[0].value = 'piyo';", e);
    
  • 相关阅读:
    重学SQL Server 笔记(二)
    H.E mapreduce操作HBase(转载)
    Paxos算法能帮助我们做什么呢? 如下几点:
    Hive入门3–Hive与HBase的整合(转载)
    Hadoop的I / O管道剖析
    install jdk in ubuntu( please notice diffrent verstion and change the name in the configuration)
    sudo bin/hadoop namenode format
    asp.net + ext grid程序示例(提供源码下载)
    摩尔定律
    it's time go to sleep ,i will be continue!
  • 原文地址:https://www.cnblogs.com/c-x-a/p/7994162.html
Copyright © 2011-2022 走看看