質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

0回答

688閲覧

selenium(c#,Chrome)で、リダイレクト履歴を取得したい

kazunii_ac

総合スコア20

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

1クリップ

投稿2018/09/24 06:02

編集2018/09/25 07:07

※2018.09.25 16:05追記 クラウドソーシングサービスへお仕事として発注しました。マルチポスト的になってしまったので、ここに追記しておきます。

解決したいこと

C#でseleniumを使ってChromeを操作しています。要素をクリックした際にリダイレクトが発生した場合に、その履歴を取得したいです。

いろいろと自分なりにググってみたのですが取得方法がわからなかったため、質問させて頂きます。

具体例

具体例としては下記です。Yahooのトップ画面 https://www.yahoo.co.jp/ のYahooトラベルへのリンクにポインタを合わせると、href要素は

https://rdsig.yahoo.co.jp/_ylt=~

という文字列であることがわかります。
イメージ説明

しかし、クリックしたあとに遷移した画面のUrlは、

https://travel.yahoo.co.jp/?sc_e=ytmh

となっています。
イメージ説明

https://www.yahoo.co.jp/ から https://travel.yahoo.co.jp/?sc_e=ytmh へ至るまで、
どのようなUrlを遷移してきた(リダイレクトされてきた)のかを取得したいです。

こんな感じ

c#

1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5using System.Threading.Tasks; 6 7using OpenQA.Selenium.Chrome; 8using OpenQA.Selenium; 9 10 11namespace testApp 12{ 13 class Program 14 { 15 static void Main(string[] args) 16 { 17 ChromeDriver driver = new ChromeDriver(); 18 driver.Url = "https://www.yahoo.co.jp"; 19 driver.FindElementById("mhi1st").Click(); 20 //★ここでdriverを渡して、https://www.yahoo.co.jp からどのようなUrlを辿って来たかわかるListを取得したい 21 //★返り値はList<redirectHistory> 22 //★上記例だったら、 23 //★ https://www.yahoo.co.jp と、 24 //★ https://rdsig.yahoo.co.jp/_ylt=~ と、 25 //★ https://travel.yahoo.co.jp/?sc_e=ytmh 26 //★を含むList<redirectHistory>が返ってくるイメージ。 27 } 28 } 29 class redirectHistory 30 { 31 int redirectOrder; //何番目のリダイレクトか 32 string redirectType; //どのような種類のリダイレクトだったかわかる文字列 301とか、302とか、meta refreshとか 33 string url; //通過したUrl 34 } 35} 36

ご存知の方、いらっしゃいましたらお教え頂ければと思います。
よろしくお願いいたします。

※上記でYahooを使ったのはあくまで例です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問