2016-09-16 78 views
0

我一直在做一些硒最近的工作,我遇到了click()函数的问题。硒点击()跳过

给出下面的HTML代码:

<div id="sendreply"> 
     <input type="submit" class="button norm-green" value= 
     "Send Message name="sendmessage"> == $0 
    </div> 

我一直在试图点击“发送消息”按钮,单击但()刚好经过的动作而进入下流操作。

我曾尝试按名称和XPath查找元素:

time.sleep(2) 
    option='by_name' 
    if option == 'by_name': 
     driver.find_element_by_name('sendmessage').click() 
    else: 
     driver.find_element_by_xpath("//div[@id='sendreply']").click() 

我没有得到任何错误代码任何责任。

任何帮助非常感谢。

+0

请注意,我复制HTML时发生错误。实际的HTML包含一个双重素数:“发送消息” – David

回答

0

如果你已经尝试了所有,但没有获得成功,请尝试使用execute_script()作为一个替代的解决方案来进行点击,并从这个问题摆脱如下: -

driver.execute_script("arguments[0].click()", driver.find_element_by_name('sendmessage')) 

警告: - 该JavaScript注射HTMLElement#click()不应该在测试环境中使用。它打败了测试的目的。首先是因为它不会产生像真正的点击(focus, blur, mousedown, mouseup...)这样的所有事件,其次是因为它不能保证真正的用户可以与元素进行交互。但是,您可以将其用作替代解决方案来摆脱此问题。