2016-10-27 1 views
0

У меня есть небольшой AppleScript со встроенным Javascript, который отлично работает на Safari, но не в Chrome.Работает ли JavaScript в AppleScript на Safari, но не на Chrome

версия Safari (не соответствующие части удалены):

tell application "Safari" 
    activate 
     do JavaScript "document.getElementsByName('files[]')[0].click();" in document 1 
    end tell 

Версия Chrome:

tell application "Google Chrome" 
    activate 

    tell window 1 to tell tab 1 

     execute javascript "document.getElementsByName('files[]')[0].click();" 

    end tell 

хромированной версия возвращает "недостающее значение" в компании Apple ScriptEditor.

я могу получить другие Javascript команды для работы и я могу получить

document.getElementsByName('files[]')[0].click(); 

или

document.getElementsByName("files[]")[0].click();" 

в консоли Chrome, когда на соответствующую веб-страницу (думал, что это может иметь что-то делать с двойной цитаты - все-таки я могу предположить).

Вот данный элемент:

<h3>Add new documents for this patient 
     <!-- The fileinput-button span is used to style the file input field as button --> 
     <span class="btn fileinput-button" style="float: right !important;"> 
      <span>Select Files to Upload</span> 
      <input type="file" name="files[]" multiple=""> 
     </span> 
    </h3> 

Любые идеи? Я пробовал так много итераций этого.

document.getElementsByClassName('btn fileinput-button')[0].children[1].click(); 

работает в консоли, но не в AppleScript. Похоже, AppleScript странности ко мне, но ...

Добавлена ​​информация:

я могу получить «щелчок» на странице входа в систему, так что это не сайт широкий вопрос ...

tell window 1 to tell tab 1 

      execute javascript "document.getElementById('username').value='someLoser';" 
      execute javascript "document.getElementById('password').value='YouWish'" 
      execute javascript "document.getElementsByClassName('btn btn-md btn-primary')[0].click();" 

     end tell 

прекрасно работает в AppleScript.

Спасибо.

ответ

0

Я думаю, что это связано с проблемой безопасности, которая не позволяет браузеру выполнять событие click удаленно. Я смог выполнить клик с помощью jQuery и vanilla с консоли в ходе быстрого теста, который я установил, но я не смог выполнить это с помощью AppleScript. У меня нет ошибок, и это просто ничего.

я нашел несколько подобных сценариев в других вопросах: