Python Selenium-Javascript按钮不会单击

时间:2019-06-02 20:16:12

标签: python selenium xpath css-selectors webdriverwait

我正在尝试创建一个脚本,该脚本在网站上进行了注册,但由于某种原因,我无法使其点击免费注册»按钮。没有错误消息或任何东西。动画看起来好像已经单击了按钮,但是该站点不会加载下一页。

HTML源代码如下:https://i.imgur.com/PXKfWMD.png

<div class="main_full_container">
   <div id="main" class="main_container content_container">
       <div class="flex_container">
          <main class="main_content">    
<div>
<div>
 <form method="post" action="" class="js-register_form">
 <input type="hidden" name="register_auth" class="js-register_auth" value="99ce8">
 <div>
  <div class="login_row">
   <div class="login_row__icon">
    <svg class="ysvg" style="width: 60px; height:60px"><use xlink:href="/images/93636_0529/bg/icons/sprites/desktop/main/sprite.svg#letter"></use></svg>
   </div>
   <div class="login_row__text">
    <div class="login_row__headline">
        Sign up for free!
    </div>
    <div class="login_row__subheadline">    
    </div>
   </div>
  </div>
  <div class="flex_row--centered">
   <input type="hidden" name="action" value="register">
   <a name="Email"></a>
   <div class="register__container">
    <div class="topmargin">
        <label>
            <div style="padding:0 3px 3px">E-Mail</div>
            <input class="js-register_email" id="email" type="email" name="email" required="" value="">                             
    </div>
    <div class="topmargin">                             
        <div class="ysb-pos-middle">    
            <button class="ysb js-register ysb-highlight" type="submit">Sign up for free »</button>
        </div>  
    </div>
    </div>
   </div>
   <div class="login_alternatives">
    <div class="login_alternatives__or"><span>or</span></div>
    <div>
        <a href="https://accounts.google.com/o/oauth2/">Sign in with Google</a>
    </div>
        <a class="js-social_media_login_info small" href="#">Meaning</a>
   </div>
   </div>
 </form>
</div>
</div>
 <script type="text/javascript">document.forms[0].email.focus();</script>
   </main>
       </div>
   </div>
</div>

在输入字段中键入电子邮件后,我希望bot单击 Sign up for free » 按钮。 该按钮的XPath是:

//*[@id="main"]/div/main/div/div/form/div/div[2]/div/div[2]/div/button

我已经尝试过其他方法。

通过常规点击功能:

driver.find_element_by_xpath('//*[@id="main"]/div/main/div/div/form/div/div[2]/div/div[2]/div/button').click()

通过“执行脚本”:

driver.execute_script("arguments[0].click();", driver.find_element_by_xpath('//*[@id="main"]/div/main/div/div/form/div/div[2]/div/div[2]/div/button'))

还尝试了以下线程的解决方法:Python Selenium Button Won't Click

code

(显然不是一次完成,但是它们都不起作用。)

此外,增加睡眠时间并没有带来任何有益的效果。

除了使用最后一种方法的超时时,我没有收到任何错误消息。脚本单击该按钮,但没有任何反应。 任何帮助深表感谢!预先感谢

1 个答案:

答案 0 :(得分:0)

您尝试过吗:

find_element_by_tag_name("button").click()

如果这不起作用,则还有submit()

find_element_by_tag_name("button").submit()