簡體   English   中英

下拉單擊在Selenium RC中不起作用

[英]Dropdown click not working in Selenium RC

我正在嘗試自動化硒中的測試腳本。 自動化活動的方案:

  1. 它應該首先自動打開頁面URL。
  2. 單擊左側導航。
  3. 然后在頁面上填充下拉菜單,應該從下拉菜單中選擇一個固定值(例如= company)
  4. 單擊頁面底部的創建按鈕。

在我的情況下,代碼一直工作到下拉列表,但此后代碼無法單擊“創建”按鈕作為下一步操作。 我在命令控制台中收到的錯誤消息如下:

元素名稱=在會話c48334c30上未找到創建...... 96ed

這是我的代碼:

public class testing {

    Selenium selenium = null;

    @Test
    public void submit() throws Exception {
        selenium = new DefaultSelenium("localhost", 4545, "*firefox", "URL");
        selenium.start();
        selenium.open("URL");
        selenium.windowFocus();
        selenium.windowMaximize();
        selenium.click("link=Work with company names");
        selenium.waitForPageToLoad("30000");
        selenium.select("//select[@name='company_id']", "label=company");
        selenium.waitForPageToLoad("3000");
        selenium.click("name = create");

    }
}

請為我提供解決此問題的建議,因為我無法理解為什么它無法單擊名為“創建”的按鈕。 我也嘗試使用selenium.click("xpath=//button[matches(@id,'.*create')]"); 而不是selenium.click("name = create")但它也無法正常工作。

請讓我知道此錯誤可能是什么問題,我該如何解決? 謝謝。

1)如果您提供網頁的html代碼,那就太好了。

2)在單擊任何元素(在某些操作后加載)之前,我建議使用WaitForElementPresent(來自Selenium IDE),即確保該元素確實存在。 Selenium的工作速度非常快,它可能會在元素實際加載之前嘗試單擊該元素。

您可以使用以下方式:

public bool waitForElementPresent(string Xpath) {
bool present = false;
for (int second = 0; ; second++) {
if (second >= 5) {
break;
}
if (IsElementPresent(Xpath)) {
present = true;
break;
}
Thread.Sleep(1000);
}
return present;
}

試試這個

selenium.click("//*[contains(@name,'create')]");

使用時:selenium.waitForPageToLoad(“ 3000”); Selenium正在等待頁面加載。 您想添加一個暫停,盡管thread.sleep並不是最佳實踐,它仍然可以為您工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM