.send_keys方法没有输入预期的数据,否则它将被完全忽略

时间:2014-11-25 19:26:45

标签: ruby selenium-webdriver

我遇到的情况是driver.find_element(:id,“sometext”)。send_keys方法没有输入预期的数据,否则它将被完全忽略。

我正在使用Selenium WebDriver与Ruby和Windows 7。

示例:

在下面的代码中,前两行找到单价字段,清除它然后在该字段中输入“100.00”。在第二个中,相同的行为应该在Broker Commission字段中输入“150.00”,而是输入“0.1”,然后输入第三个,即完全忽略Shipping Fee字段。

我试过这样做:id,:name以及:xpath,结果相似。请注意,同一页面上还有其他字段使用相同的方法输入正确的金额,但对于这两个字段,我无法使其工作。为什么这两个字段只会有所不同?

@driver.find_element(:id, "frmfldUnitPrice2").clear
@driver.find_element(:id, "frmfldUnitPrice2").send_keys "100.00"
@driver.find_element(:id, "txtBrokerCommission").clear
@driver.find_element(:id, "txtBrokerCommission").send_keys "150"
@driver.find_element(:id, "txtShippingFee").clear
@driver.find_element(:id, "txtShippingFee").send_keys "100"

1 个答案:

答案 0 :(得分:0)

经过大量研究后,我找到了解决方案。它比我想象的更简单。不优雅,但它适用于这种情况。

输入sendkeys命令和退格" \ b"你解决了光标到默​​认值结束的问题。因为"清除"没有工作我不得不去现场然后退格4次以清除0.00 (" \ b" * 4)

@driver.find_element(:id, "txtBrokerCommission").clear
@driver.find_element(:id, "txtBrokerCommission").send_keys ("\b"*4)
@driver.find_element(:id, "txtBrokerCommission").send_keys "150"
@driver.find_element(:id, "txtShippingFee").clear
@driver.find_element(:id, "txtShippingFee").send_keys ("\b"*4)
@driver.find_element(:id, "txtShippingFee").send_keys "100"