【发布时间】:2022-03-12 11:08:05
【问题描述】:
有没有其他方法(不是 sendKeys)使用 selenium webdriver 将文本输入文本框?
【问题讨论】:
-
为什么会有另一种方式? sendKeys 有什么问题? API 设计者很少提供 5 种方法来做同样的事情。
-
一位面试官问了这个问题...
有没有其他方法(不是 sendKeys)使用 selenium webdriver 将文本输入文本框?
【问题讨论】:
其他方式只能使用原生Javascript动作在文本框中输入值:
WebDriver driver = new FirefoxDriver();
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("document.getElementById("textbox_id").value='new value';);
【讨论】:
@Vasntha,试试我的测试代码
driver.get("http://www.qajudge.com/");
WebElement cssValue= driver.findElement(By.xpath(".//*[@id='s']"));
JavascriptExecutor jse = (JavascriptExecutor) driver;
jse.executeScript("document.getElementById('s').value='Virender Testing
sending'");
【讨论】:
WebElement name=driver.findElement(By.name("username"));
((JavascriptExecutor)driver).executeAsyncScript("arguments[0].value='admin'",name);
【讨论】:
尝试以下一个,我在 Gmail 中尝试过,它可以工作
System.setProperty("webdriver.chrome.driver", "you .exe path here");
WebDriver driver = new ChromeDriver();
driver.get("https://accounts.google.com/");
driver.manage().window().maximize();
Thread.sleep(1000);
//Next button element
WebElement nextBtn = driver.findElement(By.id("identifierNext"));
JavascriptExecutor js = (JavascriptExecutor)driver;
//code to enter value in the email textbox
js.executeScript("document.getElementById('identifierId').value='testemail'");
//code to click on next button
js.executeScript("arguments[0].click();", nextBtn);
【讨论】:
是的,使用 javascript 执行器。在这里,我编写了一个使用 XPath 来捕获元素的代码。
WebElement webelement = driver.findElement(By.xpath("your xpath");
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].value='Techndeck';",webelement );
【讨论】:
使用 javascriptexecutor 输入文本 如何使用 Javascriptexecutor 在元素中输入文本,我想在不通过 SendKeys 输入的文本框中输入文本。我继续使用 Javascriptexecutor 输入文本 Example 2. Get/Retrieve text with JavascriptExecutor。在此示例中,我们正在访问一个网站并尝试使用 JavascriptExecutor 检索登录按钮上写入的文本
如何使用 JavascriptExecutor 发送文本和获取文本?, 所以在这种情况下,我们使用 Selenium WebDriver 库的 JavascriptExecutor 来处理 好吧,让我们从使用发送文本数据到文本区域开始 如果您仍有任何困惑,请在下面的评论中写下。 这是在 Selenium WebDriver 中使用 JavascriptExecutor 发送文本的另一种技术。这是示例代码:ADA。
WebElement webl = driver.findElement(By.xpath(“xpath_expression”));JavascriptExecutor js = (JavascriptExecutor)driver;js.executeScript(“arguments[0].value=’SynTest’;”, webl);
1.如何在 Selenium WebDriver 中使用 JavaScript 输入文本, 以下是可用于使用 javascript 输入文本的命令。你不需要总是使用 sendkeys。 句法: JavascriptExecutor jexe 要在通过 xpath 标识的文本框中输入文本,您可以使用以下符号:
(JavascriptExecutor) driver.executeScript("document.evaluate(xpathExpresion, document, null, 9, null).singleNodeValue.innerHTML="+ DesiredText);
【讨论】: