Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby .send_keys方法未输入预期数据,否则将完全忽略它_Ruby_Selenium Webdriver - Fatal编程技术网

Ruby .send_keys方法未输入预期数据,否则将完全忽略它

Ruby .send_keys方法未输入预期数据,否则将完全忽略它,ruby,selenium-webdriver,Ruby,Selenium Webdriver,我遇到这样一种情况:driver.find_元素:id,“sometext.send_keys”方法没有输入预期的数据,或者完全忽略了它 我正在将SeleniumWebDriver与Ruby和Windows7一起使用 例如: 在前两行下面的代码中,找到单价字段,将其清除,然后在该字段中输入“100.00”。在第二个字段中,同样的行为应该在Broker佣金字段中输入“150.00”,但是输入“0.1”,然后第三个字段,即运费字段被完全忽略 我尝试使用:id、:name和:xpath来实现这一点,结

我遇到这样一种情况:driver.find_元素:id,“sometext.send_keys”方法没有输入预期的数据,或者完全忽略了它

我正在将SeleniumWebDriver与Ruby和Windows7一起使用

例如:

在前两行下面的代码中,找到单价字段,将其清除,然后在该字段中输入“100.00”。在第二个字段中,同样的行为应该在Broker佣金字段中输入“150.00”,但是输入“0.1”,然后第三个字段,即运费字段被完全忽略

我尝试使用: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"

经过大量研究,我终于想出了一个解决办法。这比我想象的要简单得多。不是很优雅,但它适用于这种情况

通过输入sendkeys命令和backspace\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"