2016-08-25 97 views
1

我在Ubuntu可靠的本地virtualbox以及travis上的可信映像上擁有完全相同版本的硒(2.53.6)和firefox(43.0)。Selenium在本地工作,但無法點擊Travis上的鏈接

的HTML代碼是微不足道的

<div> 
    <a href="/"><i class="fa fa-close fa-2x" aria-hidden="true"></i><br>Close</a><br> 
</div> 

測試代碼是微不足道的,以及

def test_start_stop_container(self): 
    driver = self.driver 
    driver.get(self.base_url + "/hub/login") 
    driver.find_element_by_id("username_input").clear() 
    driver.find_element_by_id("username_input").send_keys("test") 
    driver.find_element_by_id("password_input").clear() 
    driver.find_element_by_id("password_input").send_keys("test") 
    driver.find_element_by_id("login_submit").click() 
    driver.find_element_by_name("action").click() 
    self.wait_for(lambda: "noVNC" == driver.title) 
    driver.find_element_by_xpath("//i").click() # << this here. 
    self.wait_for(lambda: "noVNC" != driver.title) 
    driver.find_element_by_name("action").click() 
    driver.find_element_by_xpath("//i").click() 
    driver.find_element_by_xpath("(//button[@name='action'])[2]").click() 
    self.wait_for(
     lambda: "Start" == driver.find_element_by_name("action").text) 
    driver.find_element_by_id("logout").click() 

在這兩種情況下,我使用的Xvfb,但僅限於特拉維斯點擊不工作。沒有例外發生。看起來好像操作沒有執行。我使用一些ffmpeg魔術記錄了Xvfb的會話,我看到的是鏈接以藍色突出顯示(這是懸停顏色),但不會單擊該鏈接。

This video shows the exact operation (starts around 20 sec mark)

是否有人有問題可能是什麼想法,或者有什麼東西我可以做些什麼來調試呢?

+0

你說的是這行'driver.find_element_by_xpath( 「//我」)點擊()'??。 –

+0

@SaurabhGaur是的。這實際上是一種選擇。我也嘗試在關閉標籤上選擇,但結果是一樣的。 –

+0

您是否嘗試過使用'driver.find_element_by_link_text(「Close」)。click()'或'driver.find_element_by_partial_link_text(「Close」)。click()'??? –

回答

1

其實如預期的WebElement一段時間click()方法不起作用由於元素或其他問題的一些設計問題。因此,在這種情況下,這是由硒提供的替代解決方案,用於執行一塊JavaScript以對元素執行更多事件。

所以可以使用execute_script(),而不是執行點擊這裏如下: -

driver.execute_script("arguments[0].click()", driver.find_element_by_link_text("Close")) 
0

試試這個XPath來識別HREF - "//a[contains(text(),'Close')]"