当前位置: 首页 > 知识库问答 >
问题:

用Selenium(Python)单击按钮无效

陆宏扬
2023-03-14

图像中标记的元素:-

<p>
<img onclick="document.getElementById('submitMe').click()" id="get" src="/common/images/btn-get-data.gif" style="margin-left: 20px;" class="getdata-button">  
<input type="button" style="display:none" onclick="submitData();" id="submitMe" tabindex="9" value="Get Results">
</p>

我尝试了许多方法,例如:
上述元素的X_path:"/html/body/div/div[3]/div/div/div[4]/div/div/form/div/div[3]/p/img"

1) driver.find_element_by_xpath("/html/body/div[2]/div[3]/div[2]/div[1]/div[4]/div[1]/div/form/div[2]/div[3]/p/img").click()
2) # Clicking with ActionChains
button = driver.find_element_by_xpath("/html/body/div[2]/div[3]/div[2]/div[1]/div[4]/div[1]/div/form/div[2]/div[3]/p/img")
ActionChains(driver).move_to_element(button).click(button).perform()
3) driver.execute_script("javascript:'get'")
4) driver.execute_script("document.getElementById('get').click()")
5) button = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH,"/html/body/div[2]/div[3]/div[2]/div[1]/div[4]/div[1]/div/form/div[2]/div[3]/p/img")))  
button .click()

但是以上似乎都没有点击按钮并获取页面上的数据。
我的代码:-

# Select Block Deal from drop down
driver.find_element_by_xpath("//*[@id='dataType']/option[2]").click()

# Radio Button
if driver.find_element_by_id("rdDateToDate").get_attribute("type") == "radio":
    print("Element is a Radio button")
else:
    print("Element is not a Radio button")

radioElement = driver.find_element_by_id("rdDateToDate")
radioElement.click()

# From Date
from_date = driver.find_element_by_css_selector("#fromDate")
from_date.clear()
time.sleep(2)
month = "01"
year = "2019"
day = "01"
from_date.send_keys("{day}-{month}-{year}".format(day = day, month = month, year = year))

#To Date
to_date = driver.find_element_by_css_selector("#toDate")
to_date.clear()
time.sleep(2)
month = "12"
year = "2019"
day = "31"
to_date.send_keys("{day}-{month}-{year}".format(day = day, month = month, year = year))

# Clicking at random at Y = 300
action = webdriver.common.action_chains.ActionChains(driver)
action.move_to_element_with_offset(to_date, 200,0)
action.click()
action.perform()

## Clicking at Get Data Button
????????

共有1个答案

龙凯
2023-03-14

你试过发送钥匙吗...

EC.element_to_be_clickable((By.XPATH,"/html/body/div[2]/div[3]/div[2]/div[1]/div[4]/div[1]/div/form/div[2]/div[3]/p/img")))  
button .send_keys(Keys.ENTER)

某些情况下,单选按钮和您可能需要使用带有发送空间的操作链

xpath = '/html/body/div[2]/div[3]/div[2]/div[1]/div[4]/div[1]/div/form/div[2]/div[3]/p/img'
your_element = driver.find_element_by_xpath(xpath)
ActionChains(driver).move_to_element(your_element).send_keys(Keys.SPACE).perform()
 类似资料:
  • 问题内容: 我是python selenium的新手,我尝试单击具有以下html结构的按钮: 我希望能够同时单击上方的和按钮(显然是单独单击)。 我尝试了几件事,例如: 要么, 要么, 但是,我似乎总是以结尾,例如: 我想知道是否可以以某种方式使用HTML的onclick属性来进行selenium单击? 任何能将我指向正确方向的想法都很棒。谢谢。 问题答案: 对于python,请使用 和

  • 我试图让Selenium点击一个按钮来跟踪一个链接(它是表下面的“上个月”按钮):https://www.interactivebrokers.eu/en/index.php?f=39108 我尝试了以下方法 有人能帮忙吗?谢谢

  • 我是python selenium的新手,我正在尝试单击一个具有以下html结构的按钮: 我希望能够同时单击上面的和按钮(显然是单独单击)。 我尝试了几件事,例如: 或者, 或者,

  • 我试图用硒点击“下一页”按钮,但没有成功。我使用了正确的CSS选择器还是应该把它换成别的东西?

  • 我想单击以下按钮: https://i.stack.imgur.com/ifiDC.png 到目前为止,我的代码看起来像这样,但什么也没发生: https://i.stack.imgur.com/Cgi5v.png 谢谢你的帮助:)

  • 我正在尝试单击一个按钮来启动文件下载。根据我所看到的,该按钮具有悬停功能。我尝试通过所有单击。 页面的HTML块, 悬停前按钮的类是, 悬停时按钮的类是, 通过开发人员窗口选择按钮,并通过路径从 我得到了如下结果, CSS路径, XPath, 我试过的代码, 而且,