2012-12-09 55 views
1

我使用Selenium RC自動化某些第三方站點並面臨與上傳文件按鈕有關的問題。硒不能找到元素,除非我將鼠標移動到該元素上

該按鈕存在於頁面上,但Selenium無法找到並單擊該元素。我試圖等待那個元素出現在頁面上,所以在我遇到問題後,我才知道Selenium會在我等待那個元素時手動將鼠標移動到該按鈕上,從而找到該元素。

這是我的代碼片段。

public void testBox() throws Exception{ 
    selenium.setTimeout("10000000000"); 
    selenium.open("/files"); 
    selenium.click("id=login_button_credentials"); 
    selenium.waitForPageToLoad("150000"); 
    while(!selenium.isElementPresent("id=upload_split_arrow")) { 
     Thread.sleep(10); 
    } 

    selenium.click("id=upload_split_arrow"); 
    while(!selenium.isElementPresent("id=upload_file1")) { 
     Thread.sleep(10); 
    } 

    selenium.click("id=upload_file1"); 
    Thread.sleep(10000000); 
} 

任何人都可以爲此提出一些解決方法嗎?

+0

不要打開文件上傳控件,只需將文件的路徑發送到元素即可。 – Arran

+0

嗨arran這是我在做的而不是點擊它我使用的是selenium.type(「id = upload_file1」,「D:\\ Downloads \\ testcases \\ testcases \\ SalesforceAccounts.java」);我使用上面的類型命令,但這不是一個問題硒是無法找到該元素,只要我將鼠標移動到該元素,它發現它。 –

回答

0

使用「焦點」之前使用「點擊」命令。 它可以達到目的。

selenium.focus("id=upload_file1"); 
    selenium.click("id=upload_file1"); 
+0

嗨HemChe即使對焦它應該能夠找到該按鈕,它不會發現,直到我手動移動我的鼠標在該按鈕。 –

+0

即使在selenium.focus我得到元素沒有發現異常 –