Rocky Linux8でpython3でphpからexecでpython3を呼び出してwebスクレイピングをしております。
必要があって最近別にサーバーを立ち上げて同じようにwebスクレイピングをしたところ全く問題なく動いてるように思えたのですが、ある箇所でエラーがあるのに気付き、確認してみるとexecute_scriptを使用してjavascriptを実行している部分が効いてないようで、試しにシェルからphpから呼び出して実行している同じpyファイルを直接実行してみたんですが、その時はexecute_scriptはうまくいきまして無事スピングは完了しました。
execute_scriptだけがなぜかphpから呼び出して実行すると効いてないようです。
execute_script以外は全く問題ないので、勝手な思い込みかもしれませんがパスや設定などに問題があるようには思えませんでした。
execute_scriptがなぜ効かないのか、考えられる原因、ご教授よろしくお願い致します。
追記
誤字のみ修正させていただきました。
あとからわかったことは
python
1INPUT_EMOJI = """ 2 arguments[0].value += arguments[1]; 3 arguments[0].dispatchEvent(new Event('change')); 4""" 5driver.execute_script(INPUT_EMOJI, element, text)
上記コードは動作するのを確認しました。
ヒアドキュメントかどうかは問題ではないと思います。
python
1elem = driver.find_element_by_css_selector('textarea[name="body"]') 2driver.execute_script('arguments[0].style.visibility="visible";', elem)
上記が問題のコードなんですが、これが動作しません。
どちらもシェルからコマンドを叩いての実行では問題なく動作しております。
更に検証してわかったことは。スタイルの変更がうまくいかないということがわかりました。
jQueryで実行しても他のjavasccriptでの方法など、色々試しましたが全てシェルからのpy実行では問題なく、PHPからexecで実行した時のみスタイルの変更が効かないようです。
phpでのexec実行時にsudoでシェルから実行したユーザーに変更してから該当のpyファイルを実行してもダメでした。
手がかりだけでもいいので、どなたかご教授の方よろしくお願い致します。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。