我正在尝试点击隐藏的搜索按钮。 我尝试了一些方法,但它没有工作:
<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);
点击搜索按钮,但我在字段中输入的数据不接受。它的作用就像我还没有输入数据一样。这向我展示了搜索中的所有用户。
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
您可以查看此内容 - How to click on hidden element in Selenium WebDriver?
如果您可以更改元素,那么使用xpath查找元素也不是一个好主意。
请注意,某些版本的浏览器(我认为 - FF 34.xx.x,35.xx.x)在执行js时遇到了这个奇怪的问题。
答案 1 :(得分:0)
id为searchClientBtn的input-element是一个隐藏字段。您无法在普通浏览器中与其进行交互。由于Selenium正在推动浏览器,它不会让你做一些普通浏览器无法做到的事情。
这是正常行为,您无法更改。
要提交表单,可以在该表单中的任何可见输入字段上调用click()方法。您也可以抓取表单元素并单击()。
答案 2 :(得分:0)
正如@Stefaan Neyts所解释的那样尝试提交表格。填写表格中的所有详细信息后,请尝试以下代码。
driver.findElement(By.id("clientName")).submit();
答案 3 :(得分:0)
我发现了我遇到的问题。我有两个具有相同ID的元素&#34; searchClientBtn&#34;。
所以我使用了driver.findElement(By.xpath("(.//*[@id='searchClientBtn'])[2]")).click();
让我读到第二个没有隐藏的元素,它解决了我的问题。
谢谢大家。