无法使用selenium webdriver单击带有xpath和classname的提交按钮

时间:2015-11-12 14:32:17

标签: javascript html selenium xpath

这是html代码:

...
<div class="span_3_of_4"> 
  <p class="text_popup"> Dont Have an Account? | 
    <a class="fancybox" href="#load_box">Signup</a> 
  </p> 
</div> 
<div class="span_1_of_4" align="center"> 
  <input class="button" type="submit" value="Submit"/> 
</div> 
</div> 
</form> 
</div> 
<script src="js/jquery.form.js" type="text/javascript"/>

它是一个提交按钮。我正在尝试使用selenium webdriver自动注册。此按钮没有这样的ID或名称。因此我尝试使用xpath(取自萤火虫).//*[@id='load_form']/div/div[2]/inputclassname - button

然而,以下错误被抛出Element is not currently visible and so may not be interacted withCommand duration or timeout: 428 milliseconds。 请建议我如何克服这个错误,并能够点击&#34;提交&#34;按钮。

Selenium Version - 2.44

2 个答案:

答案 0 :(得分:0)

试试这个:

driver.findElement(By.xpath("//div[@id='load_box']/form[@id='load_form']//input[@class='button' and @type='submit']"))

问题是有几个form元素带有&#34; load_form&#34;在网站上,第一个是隐藏的!这就是为什么你需要一个像上面那样更具体的xpath的原因。

答案 1 :(得分:0)

我经常遇到这个问题,通常解决问题的一件事就是切换帧。使用python我认为它类似于driver.switch_to_frame('frame')我可能在语法上有错,但绝对可以试试