我遇到了問題自動化,使用Selenium RC和Java在帶有變量ID的文本框中輸入文本。奇怪的是,下面的代碼在Selenium RC中用C#工作得很好,但在Java中卻沒有。如何在webdriver支持的Selenium RC中包含正則表達式?
selenium.type("xpath=//input[matches(@id,'.*firstName')]", firstName);
在C#上使用Selenium RC,但不使用Java。
我也嘗試了這些選項在尋找一些計算器的職位後,但它仍然無法正常工作
xpath=//input[@contains(@id,'firstName')];
xpath=//input[@contains(@id,'.*firstName')];
xpath=//input["id=regexp:.*firstName");
css=input[id^='regexp:.*firstName'];
css=input[id^='firstName']
這裏的文本框的Xpath的代碼。
<td>
<input type="text" class="textboxbase" id="mymainfirstgenid_13_mainsecond:firstName" style= "width:160px; "tabindex="0">
</td>
我使用(。*)作爲在硒C#的正常工作,但在Java中不起作用變量ID的正則表達式。另外我不能使用類和名稱作爲參數,因爲它們對於所有字段都是相同的。只有每個元素都有變量ID。
任何幫助將不勝感激。
你確定這個問題是你的XPath表達式?我會認爲問題在於你的'type'的第二個參數只是'。* firstName';它不需要''。* firstName「'?那就是 - 它不需要是一個用雙引號括起來的字符串嗎? – ruakh 2012-03-17 17:05:22
感謝您的評論ruakh,是的,這是一個錯字錯誤。第二個參數是「firstName」,我聲明爲firstName =「John」或者某物。當我在eclipse中運行代碼時,它提供了一個錯誤:com.thoughtworks.selenium.SeleniumException:ERROR:Invalid xpath [2]:// input [matches(@id,'。* firstName')] at com.thoughtworks。 selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrErrororg.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) – seleniumlover 2012-03-18 07:13:06
哦,你沒有提到,它給了一個例外!我認爲它只是找不到你想要的元素。您應該發佈完整的堆棧跟蹤 - 以及有關您使用的Selenium版本的詳細信息。 – ruakh 2012-03-18 13:09:38