【问题标题】:Unable to click on the submit button with xpath and classname using selenium webdriver使用 selenium webdriver 无法单击带有 xpath 和类名的提交按钮
【发布时间】:2015-11-12 14:32:16
【问题描述】:

这是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(取自 firebug).//*[@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。 请建议我如何才能克服这个错误并能够点击“提交”按钮。

硒版本 - 2.44

【问题讨论】:

  • 你能添加你为此编写的代码吗?
  • e=driver.findElement(By.xpath(".//*[@id='load_form']/div/div[2]/input"));这是我为识别元素而编写的代码,我也使用了 By.className("button")

标签: javascript html selenium xpath


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    试试这个:

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

    问题是网站上有几个带有“load_form”的form 元素,第一个被隐藏了!这就是为什么你需要一个更具体的 xpath,比如上面那个。

    【讨论】:

    • 在 cd e=driver.findElement(By.xpath("//*[@id='load_form']//input[@class='button' and @type='submit' ]")); e.click();显示相同的错误。该页面只有一个提交 btn。 Html 是:

      没有帐户? | 注册

  • 请使用包含 id = "load_form" 元素的 html 以及您的 selenium 代码更新您的问题!
  • 登录

  • e=driver.findElement(By.xpath(".//*[@id='load_form']/div/div[2]/input")); e.click();
  • 看来load_form的类型是隐藏的。如何使它可见,以便我能够点击提交按钮?
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签