タイトルのみの iframe を識別して切り替える方法を教えてください。
<iframe frameborder="0" style="border: 0px none; width: 100%; height: 356px; min-width: 0px; min-height: 0px; overflow: auto;" dojoattachpoint="frame" title="Fill Quote" src="https://tssstrpms501.corp.trelleborg.com:12001/teamworks/process.lsw?zWorkflowState=1&zTaskId=4581&zResetContext=true&coachDebugTrace=none">
以下のコードを試しましたが、動作しません
driver.switchTo().frame(driver.findElement(By.tagName("iframe")));
ベストアンサー1
driver.switchTo().frame()
複数のオーバーロードがあります。
driver.switchTo().frame(name_or_id)
ここでは、iframe
ID も名前もないので、あなたには適していません。driver.switchTo().frame(index)
これは最後の選択肢です。インデックスの使用は想像するほど安定していないからです。これがページ内の唯一のiframeである場合は、driver.switchTo().frame(0)
driver.switchTo().frame(iframe_element)
最も一般的な方法です。他の要素と同様に iframe を見つけて、それをメソッドに渡します。
ここでは、属性によって見つけるのがtitle
最善のようです。
driver.switchTo().frame(driver.findElement(By.cssSelector("iframe[title='Fill Quote']")));
// driver.switchTo().frame(driver.findElement(By.xpath(".//iframe[@title='Fill Quote']")));