伙计们,
我第一次在 Stack Overflow 上。希望大家能帮忙...
我正在尝试使用 Selenium 单击 html 页面上的“立即购买”按钮。这是 HTML 片段:
</div>
<a href="javascript:void(0)" class="buttonCheckout">Buy Now</a>
<a href="#" class="buttonSoldout">Sold Out</a>
</div>
我使用 Selenium IDE 来获取正确的 Xpath 定位器,但单击事件总是失败。
>> 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')
- 但这些建议给出了相同的 Element not found 错误。
我还尝试了上述各种排列,尝试了其他 Xpaths ( chk = "//a[@class='buttonCheckout']"
, chk = "/descendant::a[@class='buttonCheckout']"
, chk = "//a[@href='javascript:void(0)']"
.
在所有这些情况下,我相信我已经找到了正确的定位器,因为该get_xpath_count
方法有效但click
总是失败。
这里有什么建议吗?提前致谢!