当前位置: 首页 > 知识库问答 >
问题:

如何使用Java在硒网络驱动程序中的隐藏字段中键入一些文本

冯风史
2023-03-14

我正在将网络驱动程序与Java一起使用进行测试自动化。我有以下HTML代码用于隐藏的输入字段:

<input type="hidden" value="" name="body" id=":6b">

如何在Selenium2(WebDriver)中的隐藏字段中键入某些内容?我已将代码编写为:

driver.findElement(By.name("body")).sendKeys("test body");

但它被显示以下错误: org.openqa.硒.元素不可见异常: 元素当前不可见, 因此可能未与命令持续时间或超时交互: 30.04 秒

有人能帮我在隐藏字段中写/键入一些文本吗?

共有3个答案

裴欣荣
2023-03-14

您需要初始化JavascriptExecutor,它将执行javaScript命令:

JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('ElementId').setAttribute('type','text');");
driver.findElement(By.id("ElementId")).click();
driver.findElement(By.id("ElementId")).clear();
driver.findElement(By.id("ElementId")).sendKeys("theTextYouWant");

如果你想隐藏它:

js.executeScript("document.getElementById('ElementId').setAttribute('type','hidden');");
闻人举
2023-03-14
WebDriver driver=new FirefoxDriver();
driver.get("http://localhost/login.do");
driver.manage().window().maximize();
RemoteWebDriver r=(RemoteWebDriver) driver;
String s1="document.getElementById('username').value='admin'";
r.executeScript(s1);
方夜洛
2023-03-14

首先,您必须将类型属性的值从隐藏更改为文本。以下使用javascript的代码可以解决这个问题:

jse.executeScript("document.getElementsByName('body')[0].setAttribute('type', 'text');");

现在,您可以使用WebDriver输入文本。因此,使用Java和Javascript在WebDriver的隐藏字段中键入的总体代码如下:

WebDriver driver = new FirefoxDriver();
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("document.getElementsByName('body')[0].setAttribute('type', 'text');");
driver.findElement(By.xpath("//input[@name='body']")).clear();
driver.findElement(By.xpath("//input[@name='body']")).sendKeys("Ripon: body text");
 类似资料:
  • 问题内容: 我将WebDriver和Java一起用于自动化测试。对于隐藏的输入字段,我有以下HTML代码: 如何在Selenium2(WebDriver)的隐藏字段中键入内容?我写的代码为: 但是它显示了以下错误:org.openqa.selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与命令持续时间或超时进行交互:30.04秒 有人可以帮我在隐藏字

  • 我的目标是使用硒为Python自动在线账单支付。 使用以下代码使用 Web 驱动程序登录成功: 登录后,一个新的页面加载,我的下一步是点击一个链接。代码: 什么也没发生。没有导航到该法案 但仍然没有。我还应该尝试其他什么? 错误: Traceback(最近调用的最后一次):File"/home/队长/. PyCharmEdu30/config/划痕/scratch_1.py",第12行,在clic

  • 我们如何使用Testng在硒网络驱动程序中选择下拉值?

  • 如何等待硒Web驱动程序中的子窗口 当我点击提交按钮,它会把我带到子窗口,我断言URL,但有时子窗口需要时间来目前使用thread.sleep(4000),但这是错误的方式。

  • 根据Selenium WebDriver文档,我们可以将名称或句柄传递给driver.switchTo().window(nameOrHandle);为了获取句柄,我们有getWindowHandle。如何根据窗口名称打开新窗口?如何获取当前窗口名称? / ***将此驱动程序未来命令的焦点切换到具有给定名称/句柄的窗口。* *有关详细信息,请参阅W3C WebDriver规范*。**@param

  • 我有一个问题,上传文件到网络系统使用硒驱动程序。所以在我的页面上,我没有任何输入来设置文件路径,而且我在网络上找到的大多数解决方案都不适合我。我必须点击上传文件按钮,然后在窗口对话框中设置文件的路径。我找到了winforms SendKeys类中使用的方法: 它的工作,但只有当测试有完全控制的机器(如果没有-路径已发送到某处不对话)。这就是问题所在,因为我无法完全控制运行测试的机器。你知道不使用S