我在C#中使用Selenium Webdriver自动填充输入表单并使用SendKeys();。方法,但是填写输入表单需要花费很长时间。我想知道是否有一种方法可以一次填充所有输入表单,或者是否有比SendKeys()更快的一次填充它们的方法?方法。我本质上是想尽快填写表格。我将不胜感激任何帮助。
我的代码示例:
//name
chromeDriver.FindElementByXPath("//*[@id='order_billing_name']").SendKeys("John Doe");
//email
chromeDriver.FindElementByXPath("//*[@id='order_email']").SendKeys("Johndoe@gmail.com");
//telephone
chromeDriver.FindElementByXPath("//*[@id='order_tel']").SendKeys("123-456-7890");
最佳答案
如果您只是在网上抓取数据,则可以执行javascript来做到这一点,并且它在理论上应该是最快的。这样的事情应该起作用。
JavascriptExecutor js = (JavascriptExecutor)chromeDriver;
js.executeScript(@"document.getElementById('order_billing_name').value = 'John Doe';");
如果您实际使用它进行测试,则可以使用“ find_element_by_id”调用而不是使用id的“ find_element_by_xpath”调用节省一些时间。根据浏览器的不同,速度可能会快很多。所以这些都可以。
chromeDriver.FindElement(By.Id("order_billing_name")).SendKeys("John Doe");
chromeDriver.FindElementById("order_billing_name").SendKeys("John Doe");