已解決。我的baseURL錯了。然後它將轉到其他網站,將其重定向到正確網站的基本網址。謝謝。Selenium Webdriver - driver.get()在插入變量時無法正常工作
我有一個問題,使用driver.get()裏面的一個變量。例如:
driver.get(baseURL+othervariable);
當我執行它時,瀏覽器會自動轉到baseURL。
我在該行之前添加了一個控制檯打印,以確保級聯是確定的,如:
System.out.println(baseURL+othervariable);
driver.get(baseURL+othervariable);
而且我可以在級聯是確定控制檯中看到。
奇怪的是,如果我直接將URL沒有基本的URL,如:
driver.get("http://examplesite.com/subsection");
它的工作原理。
爲什麼我會遇到這個問題?因爲我使用for循環來打開我需要檢查的URL數組。
所以我的程序的結構是這樣的:
for (i=0 ; i<URLs.lenght ; i++) {
driver.get(baseURL + URLs[i]);
// then do some stuff
}
單獨
但總是瀏覽器中打開基本URL。
奇怪的是,在本網站的較低環境中執行此操作時,我沒有任何問題。 Live站點出現問題。
難道網站上的某些配置阻止Selenium進入所需的URL嗎?
但是,我不明白爲什麼當我直接將URL作爲字符串插入到driver.get()中時,它即使在活動站點中也按預期工作。
所以問題是當我在裏面插入一個變量,並且只在現場。
我完全困惑。我嘗試過Firefox驅動程序,Chrome驅動程序等。所有這些都是一樣的。
我也試過:
String finalURL = baseURL+URLs[i];
driver.get(finalURL);
,拒不打開完整的URL。我在許多測試中從未遇到過這個問題。很多時候我執行了driver.get()裏面的變量和連接,我從來沒有遇到過這個問題。
有人能給我一個提示嗎?爲什麼只有在將URL作爲變量發送時纔會出現此問題,而不是在將它作爲字符串發送時纔會出現?
我使用Selenium 3.0 btw。
感謝您的幫助。
你試過寫隱式等待/顯式等待嗎? –
在這種情況下,我的意圖是編寫navigate()。to()是有用的,而不是get()。如果仍然問題再現,那麼你可以添加隱含的等待,然後調用url –
你試圖打印finalUrl之前,你把它放進adres?它看起來像什麼? – SkorpEN