2013-03-23 48 views
0

我開始使用webdriver dart庫時遇到了問題。 我希望有一些簡單的例子。 我確實有seleniumn服務器在後臺獨立運行。 我對飛鏢非常陌生,對紅寶石和watir-webdriver非常有經驗。如何使用dart庫的webdriver?

我期待下面

import 'package:webdriver/webdriver.dart'; 

main() { 
    var url = "http://google.com"; 
    var driver = new WebDriver(); 

    b = driver.newSession(browser:'firefox'); 

    b.getUrl(url); 

} 

類似代碼的東西,但是我得到的錯誤是

Unhandled exception: 
No constructor 'WebDriver' declared in class 'WebDriver'. 

查看源

class WebDriver extends WebDriverBase { 

    WebDriver(host, port, path) : super(host, port, path); 

所以它似乎像構造函數在那裏;並且WebDriverBase中的默認值將轉至遠程服務器。我究竟做錯了什麼?我已經蒐羅互聯網試圖找到簡單的例子,沒有運氣

+1

不知道有任何的webdriver,但是從我所看到的,webdriver的的構造函數採用3(非可選)參數,你不給它任何。 – 2013-03-24 01:07:18

+0

你是對的。我認爲如果沒有提供這些參數,那麼父類中的默認值就會被調用,這是我認爲對超級用戶的要求。 – negativebase 2013-03-24 04:57:45

+1

此代碼實際上將推出Firefox瀏覽器,但後來我沒有一個句柄WebdriverSession例如爲了發送消息。不知道還有什麼其他的在這裏..哦,好吧。而這個愚蠢的評論將無法正確格式化。或者這只是我。 '進口 '軟件包:的webdriver/webdriver.dart';' '主(){'' 變種驅動=新的webdriver( '本地主機',4444, '/ WD /集線器')newsession的( '火狐' );'' driver.setUrl( 'http://google.com');' '//驅動程序是實例的「_FutureImpl @ 0x2900bd4a'' '//代替WebDriverSession' '//「未來」沒有指定方法‘setUrl’'' }' – negativebase 2013-03-24 21:34:41

回答

1

與本地和會話存儲,腳本執行目前,已知問題和日誌訪問。

要使用這些綁定,硒獨立服務器必須運行。您可以在http://code.google.com/p/selenium/downloads/list下載它。

有許多使用ID來訪問頁面元素的命令。這些ID不是HTML ID;它們是WebDriver內部的不透明ID。要獲取元素的id,您首先需要執行搜索,獲取結果,並使用'ELEMENT'鍵從返回的Map中提取WebDriver id。看到http://commondatastorage.googleapis.com/dartlang-api-docs/13991/webdriver.html

+2

雖然這可能理論上回答這個問題,[這將是優選的](// meta.stackoverflow.com/q/8259),以包括的主要部分答案在這裏,並提供參考鏈接。 – 2017-01-19 15:38:14