討論區: 公開討議 (Thread #40967)

Seleniumにより、iframeにJavaScriptを差し込んで実行し、結果を受け取る問題について (2019-07-16 17:03 by toythe01 #83252)

Selenium(少なくとも3.141.59以前)では、WebDriverをとあるiframeにswitchし、JavaScriptで埋め込んだHTMLの情報を取得しようとして、return文を入れて実行しても、「can't read property...」とかいうメッセージが出てうまく行かなかった。

結局、回避手段をとらざるを得なかったが、それはreturnする代わりに、埋め込んだHTMLの要素(隠し)に書き込み、java側でwebdriver.findElement...()をにより要素を取得し、引いては実行結果を得るという方法だった。

※なぜ、このようなことにこだわったかというと、アーキテクトがコントロール辞書を作成する際の支援ツールとして「XPathFiinder」があるのだが、試しにappendGrid(OSSの表部品)のデモサイトからコントロールの情報を読み取ろうとしたら、iframeの入れ子だらけで、うまく行かなかったため。今は、回避策が動き始めたので、そのうちにサンプルのコントロール辞書を公開する予定。
(最後更新: 2019-07-18 16:38 by toythe01)

回覆 #83252×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入

ついでに、iframe使いまくりのAppendGridのページをIEで読み込もうとしたら・・・ (2019-08-04 16:35 by toythe01 #83335)

Excelのクイックメニューで実装した「HTMLから読み込む」が、どうやってもうまく行かない。

問題はいくつかある。
(1)iframeのsrc属性がhttpsから始まる。
 これにより、vbaではiframeの内部が見えなくなる。
(2)src属性を切り取って、ブラウザに貼り付けてもうまく行かない。
 ieだけでなくchromeでも、「CodePen requires a referrer to render this. Your browser isn't sending one.」とエラーになる。

今のところ、打つ手なしだが、どうするか。。。。
回覆: #83252

回覆 #83335×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入

Re: ついでに、iframe使いまくりのAppendGridのページをIEで読み込もうとしたら・・・ (2019-08-21 13:45 by toythe01 #83424)

> 今のところ、打つ手なしだが、どうするか。。。。

VBAからIEを操作する場合、IEObjectを今は使用しているが、これに限界があることが分かった。

IEObjectからの脱却はいずれ行わねばならないが、SeleniumBasic(近年、更新されていない)にするか、GUIを含めてJavaにするかは悩ましいところ。
SeleniumBasicはまだ使えそうだが・・・。
回覆: #83335

回覆 #83424×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) 登入