web-dev-qa-db-ja.com

Xpathを使用してiframe内の要素を選択するにはどうすればよいですか?

Seleniumテストを作成して、AOLメールで拡張機能をテストします。 AOLにログインしてメールを作成できましたが、iframe内のエディター内の要素も選択する必要があります。私はチェックしましたが、エディターが開いているときでさえ、次のテストは失敗します:

self.assertEqual(first=1, second=len(self.driver.find_elements_by_xpath(xpath="//iframe[@name='editor_body']//body[@contenteditable='true']")))

エラーAssertionError: 1 != 0。 Xpath(または他の方法でSeleniumを使用)でiframeの本体と他の要素を選択するにはどうすればよいですか?

17
Uri

それらに切り替えるまで、<iframe>を通過することはできません。あなたのxPath、

//iframe[@name='editor_body']//body[@contenteditable='true']

<body>タグがiFrame内にあり、現在のコンテキストにないため、機能しません。最初に切り替える必要があります。

driver.switch_to.frame('editor_body')...
20
ddavison