EDIT: О, это работает.
String script = "return document.getElementById('hidden_div').innerHTML";
В firefox.
И это тоже.
String script = "return arguments[0].innerHTML";
Я тоже попытался, но это похоже, не работает с чистым Javascript. Запустите браузер с JQuery, как упоминалось здесь. Как использовать JQuery в Selenium? и использовать следующий код для скрипта.
String script = "return $('#hidden_div').text();";
Это работает.
Итак, я нашел решение. Я должен передать обратный вызов через конструкторы.
mediachecker.py
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
path = '/Users/user/Documents/directory'
class NewEventHandler(FileSystemEventHandler):
def __init__(self, callback):
self.callback = callback
super().__init__()
def on_created(self, event):
print('New files created')
self.callback()
class Checker():
def watch(self, callback):
event_handler = NewEventHandler(callback)
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
main.py
from mediachecker import Checker
def callback():
print('callback')
def main():
checker = Checker()
checker.watch(callback)
if __name__ == "__main__":
main()