我正在使用Phantomjs Driver運行無頭版的webdriver腳本。我在上傳文件時遇到問題,因爲在普通瀏覽器(Firefox或Chrome)上會彈出操作系統對話框,該對話框允許我在我的機器中找到該文件並上傳它。 如何用ghostDriver(Phantomjs Driver)來做到這一點? 謝謝Selenium webdriver java - 用phantomjs驅動程序上傳文件
0
A
回答
0
始終標識&與上傳時有關的與「文件」類型的元素進行交互。這將解決你彈出窗口的問題。
例:在我的應用程序,上傳相關的元素有以下DOM -
<a id="uploadFileButtonLink" class="uploadFileButtonLink" href="javascript:void(0)" data-uidsfdc="3" style="display: none;">Upload a file</a>
<input id="multiFileInput" class="multifile-upload-input-button" type="file" name="chatterFile_upload" multiple="multiple"/>
<input id="multiUploadBtn" class="btnImportant" type="button" value="Upload Files"/>
在這種情況下,你可以使用的SendKeys方法「multiFileInput」它的類型是「文件」的。 這種方式適用於所有FF,Chrome &也是無頭瀏覽器。
0
我有同樣的問題,併發布了相同的問題。當使用sendKeys()方法時,PhantomJS掛起。
他們的問題記錄在這裏 - https://github.com/ariya/phantomjs/issues/10993
一個在這個問題上的意見指出,下面的語句工作 -
(PhantomJSDriver) driver.executePhantomJS("var page = this; page.uploadFile('input[type=file]', 'path to file');");
你可以試試上面的解決方案,但它可能會或可能不會工作。
0
此代碼幫我上傳,如果「多」屬性設置:
protected void uploadFile(CharSequence... keys) {
if (((WrapsDriver) driver).getWrappedDriver() instanceof PhantomJSDriver) {
StringBuffer s = new StringBuffer(keys.length);
for (int index = 0; index < keys.length; index++) {
s.append(keys[index].toString());
}
((PhantomJSDriver) ((WrapsDriver) driver).getWrappedDriver()).executePhantomJS(
String.format("var page = this; page.uploadFile(arguments[0], '%s');", s.toString()), getElement());
} else {
getElement().sendKeys(keys);
}
}
0
var webPage = require('webpage');
var page = webPage.create();
page.uploadFile('input[name=image]', '/path/to/some/photo.jpg');
在phantomjs的新版本,你可以上傳文件,這樣 uploadfile
相關問題
- 1. selenium webdriver上傳文件
- 2. 如何在.net中使用PhantomJS在selenium webdriver中上傳文件?
- 3. Selenium eclipse配置Webdriver 2和Selenium Java客戶端驅動程序
- 4. 無法使用Selenium PhantomJs驅動程序加載整個頁面
- 5. Selenium Webdriver - 上傳Audido文件
- 6. python selenium webdriver safari驅動程序
- 7. Selenium Webdriver - PageObject和驅動程序指針
- 8. 無法在Selenium中使用PhantomJS驅動程序和Firefox配置文件
- 9. Selenium中使用phantomjs驅動程序C代理#
- 10. java.lang.IllegalStateException:驅動程序可執行文件不存在 - Selenium Webdriver
- 11. 是否可以使用Selenium WebDriver來驅動PhantomJS?
- 12. Selenium Java Firefox驅動程序 - Cookies
- 13. Selenium所需功能 - 爲PhantomJS驅動程序設置handlesAlerts
- 14. 用selenium webdriver上傳文件python
- 15. Selenium Webdriver和Chrome驅動程序 - 無法運行Chrome驅動程序
- 16. 使用PHP在Selenium WebDriver上遠程上傳文件
- 17. 配置Selenium 2(WebDriver),使用IE並使用WebDriver上傳文件
- 18. PhantomJS Web驅動程序崩潰
- 19. Firefox驅動程序的Mouseover事件Mac OSX上的驅動程序/ Selenium Webdriver不起作用
- 20. Java Selenium Gecko驅動程序加載器
- 21. 在ASP.NET文件上傳控件中使用Selenium Webdriver C#自動上傳文件
- 22. Selenium WebDriver- Java - 文件上傳失敗點擊添加文件按鈕將其上傳到應用程序
- 23. PhantomJS驅動程序無法啓動
- 24. 對象實例 - Selenium Web驅動程序
- 25. 使用Selenium WebDriver和Java機器人類上傳文件
- 26. selenium webdriver日誌級別 - 禁用驅動程序調試日誌
- 27. selenium webdriver .net chrome上傳文件
- 28. selenium webdriver:通過拖放上傳文件
- 29. 無法上傳selenium webdriver中的文件
- 30. selenium safari驅動程序System.NotImplementedException
非常感謝你爲了您的迴應。但是,我的應用程序是用extjs(嵌套跨度和div)編寫的。上傳按鈕旁邊沒有文本區域。將不勝感激其他建議 – user2022966 2013-05-02 16:40:20