SVG関連タグはXPathでは*
旧タイトル:タグの明示で要素がヒットしなくなる
強いXPathを求めてChrome DevToolsで試行錯誤中に遭遇しました。
タグを明示すると、要素がヒットしなくなります。
初めての経験です。
理由を知りたいです。
追加の確認ポイントがあればお知らせください。
挙動
//svg[@aria-nantoka="arrow bottom aaa bbb"] → 0ヒット
//*[@aria-nantoka="arrow bottom aaa bbb"] → 1ヒット
思い
- 学んで身に着けた法則が通じない
- SVGだから?
- WAI-ARIAだから?
- フローティングだから?
ソースサンプル
<svg aria-nantoka="arrow bottom aaa bbb">
<b></b>
</svg>
- aria-属性しか要素を一意に特定する手掛かりがないように感じた
操作対象
- ページ右下にフローティングで固定表示されるページトップ/ボトムにスクロールするボタン
目的
- 最下部のボタンを押して、非表示エリアを表示する
- 運用者に動きが見えるようにしていた
今回の試行錯誤のきっかけ
- JavaScriptでscrollToしていた
window.scrollTo(0, document.body.scrollHeight);
https://winactor.com/questions/question/アドレスバーからjavascriptを実行してみた/
- 非表示エリアの「値の取得」が空振りするようになっていた
近いイメージ
【CSS】positionのfixedで要素を固定!具体的な使い方を解説 | ZeroPlus Media
https://zero-plus.io/media/css-position-fixed/
- fixed でトップに戻るボタンを右下に固定
- これのボトムに進むボタンバージョン
- 実際はこう並んでいる
↑ ↓ ≡
- ≡はページ内アンカー/id位置にスクロールするリストを開くボタン
近い挙動
ページの指定の高さを超えたら出現し、フッター手前で止まる | 動くWebデザインアイディア帳
https://coco-factory.jp/ugokuweb/move01/8-1-6/
- デモページの挙動が近い
効いた攻めかた
- WebDriverのシナリオ
- 「クリック」が効かない
- JSPath.click();でクリックしたら最下部へスクロールした(JavaScriptでクリックした格好)
https://winactor.com/questions/question/クリックに失敗する箇所がjavascriptで乗り越えられた/
足掻いた軌跡
ウィンドウ前面化
End
- タイミングの問題か、一発で機能しなかった
- 機能したとしても、スピード感で物足りない
- bodyをアクティブにしておけば、Endに成功したのかも
ひとまずクリアしてみて
- 前後の要素との相対位置で指定するXPathならヒットしたのかも
- だとしたら、@aria-nantokaが複数あって、、もうちょっと深堀らないと頭の整理が追い付かない
- v7.4系の「状態変化待機」相当のしくみにしていれば、「値の取得」が空振ることはなかったのかも