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);
    
  • 相关阅读:
    又来项目了,星座运势widget
    ubuntu下编译android源代码
    Android UI,界面辅助设置工具,可随意拖动控件,比google官方提供的方便
    Android 1.5原生软件开发SDK公布
    REST转自WIKI
    Android SDK 1.5 包装索引
    android google market FreshFace上线了,大家都试用试用,反正免费的
    JSON
    ubuntu命令
    网站支付宝接口错误代码:TRADE_DATA_MATCH_ERROR怎么处理? uz
  • 原文地址:https://www.cnblogs.com/c-x-a/p/7994162.html
Copyright © 2011-2022 走看看