Cython может скомпилировать нормальный код python, поэтому ваш первый компилируется.
Вообще говоря, чем больше типов вы укажете на cython, тем больше шансов, что вы получите лучшую производительность. Это ваше решение, если вы хотите торговать гибкостью для скорости.
Запустите cython -a your_test.pyx
, чтобы просмотреть аннотированную версию того, как cython будет компилировать ваш код. Желтый означает, что ваш код преобразуется в много кода C (что примерно подразумевает снижение производительности), в то время как белый означает, что он преобразуется только в несколько строк C.
Если вы не потратили время на запрос здесь , но вместо этого прочитайте руководство на официальном сайте, вы могли бы получить лучшее понимание уже.
Вы можете установить значение поля ввода с помощью JavaScript. Учитывая, что id поля - fileName
, следующий пример установит значение input в файл C:\temp\file.txt
:
String script = "document.getElementById('fileName').value='" + "C:\\\\temp\\\\file.txt" + "';";
((IJavaScriptExecutor)driver).ExecuteScript(script);
В этом примере driver
- это ваш экземпляр WebDriver.
Обратите внимание, что вы должны использовать четыре обратных слеша (\
) для Windows-подобных путей, потому что вы должны передавать двойные обратные слеши в JavaScript, поэтому вы должны экранировать оба двумя дополнительными слешами. Другой вариант - использовать прямую косую черту (например, "C:/tmp/file.txt"
), и это тоже должно сработать.
Вы можете сделать это без внедрения JavaScript. Вам просто нужно взять поле формы и ввести его. Что-то вроде (с использованием Ruby API):
driver.find_element(:id, 'upload').send_keys('/foo/bar')