有什么办法可以通过C#使用Selenium WebDriver两次执行退格键来清除文本字段

时间:2019-04-04 23:20:46

标签: c# selenium selenium-webdriver webdriver webdriverwait

我有一个文本字段,默认情况下包含2位数的值。我想在输入新值之前清除它。我使用的是TextSlider.Clear();,但在最新的ChromeDriver更新之后,它不再起作用,因此我尝试使用退格键解决该问题。目前,我正在做两个退格键,一次一个。

TextSlider.SendKeys(Keys.Backspace);
TextSlider.SendKeys(Keys.Backspace);

我也尝试了DELETE,但这也没有用。有什么办法可以单行完成吗?

5 个答案:

答案 0 :(得分:0)

intent

答案 1 :(得分:0)

首先尝试修复TextSlider.Clear();不能正常工作的情况。我可能正在加载问题,SendKeys方法将起作用。尝试添加等待页面正确加载。

如果仍然无法正常工作,则可以使用

TextSlider.Click();
TextSlider.Clear();

但是下面的功能肯定会起作用,

TextSlider.SendKeys(Keys.Backspace + Keys.Backspace);

答案 2 :(得分:0)

理想情况下,不是使用config.middleware.insert_before 0, Rack::Cors do allow do origins '*' resource '*', :headers => :any, :methods => [:get, :post, :delete, :put, :patch, :options, :head], :expose => ['uid', 'client', 'expiry', 'access-token', 'token-type'] end end 来清除文本字段,而是需要诱使 WebDriverWait 使元素可点击您可以使用以下任一解决方案:

答案 3 :(得分:0)

另一个选择是使用Java脚本清除文本元素。由于某些并行测试情况下出现问题,我前一段时间不再依赖SendKeys函数。相反,我现在使用这些功能来设置特定的文本:

$ORACLE_HOME/bin/exp $ORACLE_USER/$ORACLE_PW@$DB_TNS_NAME file=$filename.dmp log=$filename.log tables=managed_devices,customers,networks,device_types,polling_classes,S_BFG_NETWORK_NODES,LOG_CLASSES,EIN,CLIENT_GROUPS,DEVICE_LOGS,CUSTOMER_SITES,JOB_CONFIGS buffer=20480000 CONSTRAINTS=n GRANTS=n INDEXES=n TRIGGERS=n STATISTICS=NONE VIEWS_AS_TABLES=CUSTOMER_SITES,JOB_CONFIGS

我个人有点不喜欢硬编码的javascript,但它总是可靠地完成了工作。此代码中两次调用“ SetElementValue”,以确保在测试中正确处理某些事件:在其他情况下可能没有必要。

答案 4 :(得分:0)

谢谢大家

我设法使用ctrl A和Delete键来解决此问题

     TextSlider.SendKeys(Keys.Control + "a");
     TextSlider.SendKeys(Keys.Delete);