[英]Dropdown click not working in Selenium RC
我正在嘗試自動化硒中的測試腳本。 自動化活動的方案:
在我的情況下,代碼一直工作到下拉列表,但此后代碼無法單擊“創建”按鈕作為下一步操作。 我在命令控制台中收到的錯誤消息如下:
元素名稱=在會話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.