質問編集履歴

2

追記

2022/06/20 08:50

投稿

shivil
shivil

スコア24

test CHANGED
File without changes
test CHANGED
@@ -24,5 +24,10 @@
24
24
  elem = driver.find_element_by_css_selector('textarea[name="body"]')
25
25
  driver.execute_script('arguments[0].style.visibility="visible";', elem)
26
26
  ```
27
- 上記が問題のコードなんですが、これが動作しません。
27
+ 上記が問題のコードなんですが、これが動作しません。
28
28
  どちらもシェルからコマンドを叩いての実行では問題なく動作しております。
29
+
30
+ 更に検証してわかったことは。スタイルの変更がうまくいかないということがわかりました。
31
+ jQueryで実行しても他のjavasccriptでの方法など、色々試しましたが全てシェルからのpy実行では問題なく、PHPからexecで実行した時のみスタイルの変更が効かないようです。
32
+ phpでのexec実行時にsudoでシェルから実行したユーザーに変更してから該当のpyファイルを実行してもダメでした。
33
+ 手がかりだけでもいいので、どなたかご教授の方よろしくお願い致します。

1

誤字を修正させていただきました。それと後にわかったことを追記致しました。

2022/06/16 07:13

投稿

shivil
shivil

スコア24

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,28 @@
1
- Rocky Linux8でpython3でphpからexecでpython3を呼び出してwebスクレイピングをしております。
2
- 必要があって最近別にサーバーを立ち上げて同じようにwebスクレイピングをしたところ全く問題なく動いてるように思えたのですが、ある箇所でエラーがあるのに気付き、確認してみるとexecute_scriptを使用してjavascriptを実行している部分が効いてないようで、試しにシェルからphpから呼び出して実行している同じpyファイルを直接実行してみたんですが、その時はexecute_scriptはうまくいきまして無事スピングは完了しました。
1
+ Rocky Linux8でpython3でphpからexecでpython3を呼び出してwebスクレイピングをしております。
2
+ 必要があって最近別にサーバーを立ち上げて同じようにwebスクレイピングをしたところ全く問題なく動いてるように思えたのですが、ある箇所でエラーがあるのに気付き、確認してみるとexecute_scriptを使用してjavascriptを実行している部分が効いてないようで、試しにシェルからphpから呼び出して実行している同じpyファイルを直接実行してみたんですが、その時はexecute_scriptはうまくいきまして無事スピングは完了しました。
3
3
  execute_scriptだけがなぜかphpから呼び出して実行すると効いてないようです。
4
4
  execute_script以外は全く問題ないので、勝手な思い込みかもしれませんがパスや設定などに問題があるようには思えませんでした。
5
5
 
6
6
  execute_scriptがなぜ効かないのか、考えられる原因、ご教授よろしくお願い致します。
7
+
8
+
9
+ 追記
10
+ 誤字のみ修正させていただきました。
11
+ あとからわかったことは
12
+
13
+ ```python
14
+ INPUT_EMOJI = """
15
+ arguments[0].value += arguments[1];
16
+ arguments[0].dispatchEvent(new Event('change'));
17
+ """
18
+ driver.execute_script(INPUT_EMOJI, element, text)
19
+ ```
20
+ 上記コードは動作するのを確認しました。
21
+ ヒアドキュメントかどうかは問題ではないと思います。
22
+
23
+ ```python
24
+ elem = driver.find_element_by_css_selector('textarea[name="body"]')
25
+ driver.execute_script('arguments[0].style.visibility="visible";', elem)
26
+ ```
27
+ 上記が問題のコードなんですが、これがが動作しません。
28
+ どちらもシェルからコマンドを叩いての実行では問題なく動作しております。