2017-03-31 35 views
-1

我試圖將當前URL與字符串URL進行比較,但以下代碼返回false等於()無法按預期與Selenium一起工作

driver.get("https://www.facebook.com");  
System.out.println(driver.getCurrentUrl().equals("https://www.facebook.com")); 
+1

歡迎使用堆棧!將'driver.getCurrentUrl()'放入一個變量中,並讓我們知道當您逐句通過代碼時是什麼。 – mrfreester

+0

打印變量給我https://www.facebook.com/但它仍然返回false。 –

+1

抱歉,我不清楚,當你逐步完成代碼時,讓我們知道'driver.getCurrentUrl()'返回的是什麼,它應該是一個字符串,而不是布爾值 – mrfreester

回答

1

而不是使用equals()嘗試使用startsWith()的:

driver.getCurrentUrl()startsWith( 「https://www.facebook.com」)

或:

司機.getCurrentUrl()。contains(「https://www.facebook.com「)

這種方法會好很多。
對於使用equals()您需要有完全相同您期望的路徑。

但是用或startsWith()您可以檢查預期的行爲並進行斷言。

我創造了一些演示代碼:

public class FacebookDemoTest { 

    private WebDriver driver; 

    @BeforeMethod 
    public void setUp() { 
     driver = DriverManager.getInstance(); 
     driver.get("https://www.facebook.com"); 
    } 

    @Test 
    public void testContainsAndStartsWith() throws Exception { 
     System.out.println("CURRENT URL:" + driver.getCurrentUrl()); 

     Assert.assertTrue(driver.getCurrentUrl().contains("https://www.facebook.com")); 
     Assert.assertTrue(driver.getCurrentUrl().startsWith("https://www.facebook.com")); 
    } 

    @Test 
    public void testEquals() throws Exception { 
     System.out.println("CURRENT URL:" + driver.getCurrentUrl()); 

     Assert.assertTrue(driver.getCurrentUrl().equals("https://www.facebook.com")); 
     Assert.assertTrue(driver.getCurrentUrl().contentEquals("https://www.facebook.com")); 
    } 

    @AfterMethod 
    public void tearDown() throws Exception { 
     DriverManager.closeQuietly(); 
    } 
} 

這裏是結果:

enter image description here

和當前的URL從控制檯日誌:

當前URL:https://www.facebook.com/

+0

如果返回的URL以facebook.com開頭,但以與主頁完全不同的內容結束(如某些用戶頁面等),那麼如果真的不應該這樣做,那麼您的'.contains()'測試會通過。最好的答案是用'.equals()'將它與「https://www.facebook.com/」進行比較,你會確定它是否正確。 – JeffC

+0

@JeffC如果你確切知道你必須得到哪條路徑 - 你必須使用equals() –

4

我想你的代碼,並正由driver.getCurrentUrl()返回的URL是"https://www.facebook.com/"

既然你與"https://www.facebook.com"做一個equals檢查,它會在返回的URL的結尾,因爲缺少'/'的返回false。請將它與此網址進行比較,或使用檢查返回的網址是否正確。

相關問題