2016-02-07 114 views
3

我有一個場景,我需要使用Selenium和Appium切換應用程序。 我從瀏覽器開始,然後我需要從通知欄獲得一些信息,然後切換回瀏覽器。 我設法將每個過程作爲一個獨立的過程來完成。但現在我正在努力做到端到端的過程。在應用程序之間切換

我已經開始創建一個webdriver會話,但我不能打開一個新的會話,而他第一個仍在運行。問題是瀏覽器和appium有不同的會話。一個是被稱爲由

_driver = new AndroidDriver<AppiumWebElement>(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities, TimeSpan.FromSeconds(180)); 

,第二個由

_webdriver = new RemoteWebDriver(new Uri("http://127.0.0.1:4723/wd/hub"), capabilities, TimeSpan.FromSeconds(180)); 
+0

如果你想在同一個'Uri'和'port'上使用兩個驅動程序。一種方法是: '_driver = new AndroidDriver (new Uri(「http://127.0.0.1:4723/wd/hub」),capabilities,TimeSpan.FromSeconds(180)); //在此處使用瀏覽器執行操作 _driver.quit(); _webdriver = new RemoteWebDriver(new Uri(「http://127.0.0.1:4723/wd/hub」),capabilities,TimeSpan.FromSeconds(180)); //通過此處的通知欄執行操作 _webdriver.quit();' – nullpointer

+0

@guy 由於我需要在瀏覽器會話期間滾動通知欄,或者至少返回瀏覽器,因此您的解決方案可能會有問題從通知欄獲取我需要的信息後。 –

+0

@YanivEliav我沒有給你任何解決方案,只是編輯了問題。 – Guy

回答

1

我能夠做到什麼需要。 我需要做的就是先用Chrome appActivity和appPackage運行AndroidDriver。

然後,使用driver.Context = NATIVE_APP;爲了使用Android的活動。 回到鉻也很容易。 driver.context = "WEBPAGE_1"; 此語法屬於C#。

才能知道當前正在使用的情況下,使用此代碼:

var Handledcontext=driver.Context.Tostring(); 

好運,感謝大家的努力幫助我。

0

首先,你在瀏覽器中使用遠程的webdriver通過設置命令超時大value..then保存會話ID在執行測試一個file..then關閉過程不退出瀏覽器.. 第二你使用appium driver..and退出它 再次重新連接您與您的文件中保存的SessionID第一屆執行測試..

如果您使用節點客戶端,那麼它非常容易 獲取sessionid:driver.getSessionId(); 要附加到現有會話:driver.attach('您的會話ID',函數(err,capability){ });

如果您使用的是像Java或C# 任何其他客戶端語言然後,你必須重寫執行硒的方法附加到現有會話

+0

不幸的是沒有任何解決方案建議工作。令人沮喪的。 –

相關問題