我正在尝试单击隐藏的搜索按钮。我尝试了几种方法,但都不起作用:
<form id="form1" name="viewClient" method="post" action="ClientMgmtServlet" abframeid="iframe.0.10752026348407184" abineguid="027BBB6AD3324EFDA3FED3803F068951">
<input type="hidden" value="U7dPiPXFQhCDtDaTHAVH" name="preventionflag"/>
<input id="searchClientBtn" type="hidden" value="Search" name="searchClientBtn"/>
我使用了这个方法:
//Enter client ID
String userid = prop.getProperty(CLIENTID);
driver.findElement(By.id("clientId")).sendKeys(userid);
//Enter client name
String clientName = prop.getProperty(CLIENTNAME);
driver.findElement(By.id("clientName")).sendKeys(clientName);
//enter Mobile No
String mobile_no = prop.getProperty(MOBILE_NO);
driver.findElement(By.id("mobileNo")).sendKeys(mobile_no);
WebElement elem = driver.findElement(By.xpath(".//*[@id='searchClientBtn']"));
String js = "arguments[0].style.height='auto'; arguments[0].style.visibility='visible';";
((JavascriptExecutor) driver).executeScript(js, elem);
它正在单击搜索按钮,但我在字段中输入的数据不被接受。它的工作原理就像我没有只输入数据一样。这向我显示了搜索中的所有用户。
有人能帮我解决这个问题吗?
发布于 2015-04-03 16:31:56
你可以查看这个- How to click on hidden element in Selenium WebDriver?
此外,如果可以更改xpath,那么使用xpath查找元素也不是一个好主意。
请注意,一些版本的浏览器(我认为- FF 34.xx.x,35.xx.x)在js执行中有这个奇怪的问题。
发布于 2015-04-03 16:02:27
id为searchClientBtn的输入元素是一个隐藏字段。您不能在普通浏览器中与其交互。由于Selenium只是驱动浏览器,它不会让您做在普通浏览器中不能做的事情。
这是正常行为,您无法更改它。
要提交表单,可以对该表单中的任何可见输入字段调用click()方法。您也可以抓取表单元素并单击()。
发布于 2015-04-04 12:02:34
正如@Stefaan Neyts解释的那样,尝试提交表单。在表单中填写完所有详细信息后,请尝试以下代码。
driver.findElement(By.id("clientName")).submit();
https://stackoverflow.com/questions/29435455
复制