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

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

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

W3C(World Wide Web Consortium)は、World Wide Webで使用される各種技術の標準化を推進する国際的な非営利団体。提唱している標準を「W3C勧告」(W3C recommendation)と呼び、Webに関する多くの技術仕様が含まれます。

Microsoft Edge

Microsoft Edgeは、マイクロソフト社が開発する新しいWebブラウザです。Windows 10から標準搭載されており、Internet Explorerとは違うレンダリングエンジンが採用されています。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

0回答

1196閲覧

ElementID から 対象 の Element が HTML 上の何処にあるのか特定したい

kamikazelight

総合スコア305

W3C

W3C(World Wide Web Consortium)は、World Wide Webで使用される各種技術の標準化を推進する国際的な非営利団体。提唱している標準を「W3C勧告」(W3C recommendation)と呼び、Webに関する多くの技術仕様が含まれます。

Microsoft Edge

Microsoft Edgeは、マイクロソフト社が開発する新しいWebブラウザです。Windows 10から標準搭載されており、Internet Explorerとは違うレンダリングエンジンが採用されています。

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

1クリップ

投稿2021/07/27 13:34

編集2021/07/27 13:35

msedgedriverを使用してGetActiveElementなどでElementIDを取得した際に
それがHTML上のどの要素なのかを特定したいです。

EdgeのデベロッパツールでIDを検索かけてみたりしたのですが
見つけられません

方法はありませんか?

PowerShell

1Class WebDriver{ 2 3 [Diagnostics.Process] $Process 4 [UInt16] $LocalPort 5 6 WebDriver([String] $WebDriver){ 7 $This.Process = start $WebDriver -WindowStyle Hidden -PassThru 8 do{ 9 $This.LocalPort = Get-NetTCPConnection -OwningProcess $This.Process.Id -LocalAddress "127.0.0.1" -State Listen -ErrorAction SilentlyContinue|% LocalPort 10 }while($This.LocalPort -eq 0) 11 12 } 13 14 [PsCustomObject] Get([String] $Url){ 15 $rst = Invoke-RestMethod -Method Get -uri "http://localhost:$($This.LocalPort)$Url" 16 return $rst.value 17 } 18 [PsCustomObject] Post([String] $Url, [PsCustomObject] $Arg){ 19 $Json = $Arg|ConvertTo-Json -Compress 20 $Body = [Text.Encoding]::UTF8.GetBytes($Json) 21 $rst = Invoke-RestMethod -Method Post -uri "http://localhost:$($This.LocalPort)$Url" -body $Body -ContentType Application/json 22 return $rst.value 23 } 24 [WebSession] NewSession(){ 25 $Body = @{capabilities=@{}} 26 $Result = $This.Post("/session",$Body) 27 return [WebSession]::new($This, $Result.SessionID) 28 } 29} 30 31Class WebSession{ 32 33 [WebDriver] $WebDriver 34 [String] $SessionID 35 36 WebSession([WebDriver] $WebDriver, [String] $SessionID){ 37 $This.WebDriver = $WebDriver 38 $This.SessionID = $SessionID 39 } 40 [PsCustomObject] NavigateTo([String] $Url){ 41 $body = @{url=$Url} 42 return $This.WebDriver.Post("/session/$($This.SessionID)/url",$body) 43 } 44 [WebElement] GetActiveElement(){ 45 $Result = $This.WebDriver.Get("/session/$($This.SessionID)/element/active") 46 return [WebElement]::New($This, $Result."element-6066-11e4-a52e-4f735466cecf") 47 } 48} 49 50Class WebElement{ 51 52 [WebDriver] $WebDriver 53 [WebSession] $WebSession 54 [String] $ElementID 55 56 WebElement([WebSession] $WebSession, [String] $ElementID){ 57 $This.WebDriver = $WebSession.WebDriver 58 $This.WebSession = $WebSession 59 $This.ElementID = $ElementID 60 } 61} 62 63 64$EdgeDriver = [WebDriver]::new("D:\Items\Programing\PowerShell\ps\tool\WebDriver\msedgedriver.exe") 65$sess = $Edge.NewSession() 66$sess.NavigateTo("https://teratail.com/") 67$Element = $sess.GetActiveElement() 68 69# これがHTML上の何処に存在しているのか探したい 70$Element.ElementID 71 72$EdgeDriver.Process.Kill()

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問