※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を使ったのはあくまで例です。
あなたの回答
tips
プレビュー