如何使用 Selenium 和 Python 单击特定按钮?

问题描述

我正在尝试查找并单击此按钮。但我总是面对“消息:无法定位元素:”

我尝试了这个选项,但它对我没有帮助:

首先:driver.find_element_by_xpath('//button[contains(text(),"CLaim Now!")]').click()

第二:driver.find_element_by_xpath('//button[@onclick="getClaim()"]').click()

第三:driver.find_element_by_css_selector('a.btn').click()

第四:driver.find_element_by_class_name('btn btn-lg btn-primary').click()

第五:driver.find_element_by_id('roll_button_container').click()

我也使用 time.sleep() 所以时间没有问题

操作流程:在我点击“立即索赔!”之后一个标签将 打开,但在上一个(我现在正在使用)中 - 我会得到积分。 我需要在项目中自动执行此操作

我几乎完整的代码(无法向您展示公司政策的所有内容):

from selenium  import webdriver
import time

driver = webdriver.Firefox (executable_path = "/Users/USER1/Downloads/AUTOMATION/geckodriver")

driver.get("https://LINK.net/")
time.sleep(3)
driver.find_element_by_xpath('/html/body/header/nav/div/div/ul/li[5]/a').click()
time.sleep(3)
element = driver.find_element_by_xpath('/html/body/div[3]/div/div/form/div[1]/input').send_keys("login")
time.sleep(3)
el2 = driver.find_element_by_xpath('/html/body/div[3]/div/div/form/div[2]/input').send_keys("password")
time.sleep(3)
driver.find_element_by_css_selector('#loginForm > div:nth-child(3) > button:nth-child(1)').click()
time.sleep(3)
driver.find_element_by_xpath('//*[@id="test_button"]').click()
time.sleep(3)
#driver.find_element_by_xpath('//button[contains(text(),"CLaim Now!")]').click()
#driver.find_element_by_xpath('//button[@onclick="getClaim()"]').click()
#driver.find_element_by_class_name('btn btn-lg btn-primary').click()
#driver.find_element_by_id('roll_button_container').click()
driver.find_element_by_css_selector('a.btn').click()
time.sleep(3)
driver.quit()

while True:
  time.sleep(60 * 5)

有人能帮我正确点击按钮吗?非常感谢。

Button

解决方法

好的,看起来该页面会将您重定向到一个充满虚假广告的页面。通过点击链接,每次都会弹出一个随机广告。或者,您可以使用 selenium 作为 getClaim 运行 js

可以通过模拟按下按钮来领取奖励 - 运行按钮将运行的功能 - only running javascript with selenium

cmd = "getClaim()"
driver.execute_script(cmd)

我希望,正如您所说,“可怜的印度人”可以帮助您。