【问题标题】:Python Selenium - Javascript Button won't click [duplicate]Python Selenium - Javascript按钮不会点击[重复]
【发布时间】:2019-06-03 04:54:44
【问题描述】:

我正在尝试创建一个在网站上注册的脚本,但我无法让它点击免费注册 » 按钮。没有错误消息或任何东西。动画看起来像按钮已被单击,但该站点不会加载下一页。

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>

在我通过输入字段输入电子邮件后,我希望机器人点击 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

(显然不是一次,但他们都没有工作。)

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

当我使用最后一种方法时,除了 TimeOut 之外,我没有收到任何错误消息。脚本单击按钮,但没有任何反应。 非常感谢任何帮助!提前致谢

【问题讨论】:

    标签: python selenium xpath css-selectors webdriverwait


    【解决方案1】:

    你试过了吗:

    find_element_by_tag_name("button").click()
    

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

    find_element_by_tag_name("button").submit()
    

    【讨论】:

    • 对我没用.. 不过还是谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2016-05-08
    • 2021-09-14
    • 2018-05-11
    • 1970-01-01
    相关资源
    最近更新 更多