我第一次在堆棧溢出。希望你們都可以幫助...
我想使用Selenium點擊在html頁面上的'立即購買'按鈕。這裏的HTML片段:
</div>
<a href="javascript:void(0)" class="buttonCheckout">Buy Now</a>
<a href="#" class="buttonSoldout">Sold Out</a>
</div>
我用硒IDE,以獲得正確的Xpath定位,但click事件總是失敗。
>> chk = "id('yui-gen2')/x:div[3]/x:div/x:a[1]"
=> "id('yui-gen2')/x:div[3]/x:div/x:a[1]"
>> @selenium.get_xpath_count(chk)
=> "1"
>> @selenium.click(chk)
**Error**
>> chk = "xpath = " + chk
=> "xpath = id('yui-gen2')/x:div[3]/x:div/x:a[1]"
>> @selenium.click(chk)
**Error**
The **Error** is:
selenium-client received failure from selenium server:
requested:
cmd=click
1=xpath = id('yui-gen2')/x:div[3]/x:div/x:a[1]
sessionId=d4d6796b3c9749139621cd0cbcde80b2
received:
"ERROR: Element xpath = id('yui-gen2')/x:div[3]/x:div/x:a[1] not found"
called from C:/Ruby187/lib/ruby/1.8/timeout.rb:67:in `timeout'
enium::CommandError: ERROR: Element xpath = id('yui-gen2')/x:div[3]/x:div/x:a[1] not found
我已經嘗試了一些對論壇的其他建議 - @selenium.double_click(chk)
,@selenium.fire_event(chk, 'click')
- 但那些給予同樣找不到元素錯誤。
我也嘗試了所有種以上的排列,嘗試其他的XPath(chk = "//a[@class='buttonCheckout']"
,chk = "/descendant::a[@class='buttonCheckout']"
,chk = "//a[@href='javascript:void(0)']"
。
在所有這些情況下,我相信我已經找到了,因爲get_xpath_count
方法作品的權利定位器但click
總是失敗
任何建議,在這裏先謝謝
您尚未顯示完整的XHTML文檔,因此任何人都無法驗證XPath表達式是否會選擇所需的節點。請編輯您的問題並提供所有必要的信息。 – 2010-10-24 15:36:55