2

我正在尝试使用硒选择一个元素,但我无法选择它。我尝试使用 xpath、css 选择它并执行 javascript 来单击它,但没有运气。有任何想法吗?

我能够使用katalon ide自动化插件和javascript控制台选择它,这让我相信有办法做到这一点。

这是代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.get(url="https://www.google.com/recaptcha/api2/demo")
driver.switch_to.frame(0)
driver.find_element(By.CSS_SELECTOR, "div.recaptcha-checkbox-checkmark").click()
driver.switch_to.default_content()
driver.switch_to.frame(1)
WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a.rc-audiochallenge-tdownload-link")))
driver.find_element(By.CSS_SELECTOR, "a.rc-audiochallenge-tdownload-link").click()

我正在尝试在这里选择音频按钮:在此处输入图像描述

任何帮助将非常感激。

4

3 回答 3

2

没有这样的元素定位器a.rc-audiochallenge-tdownload-link,音频按钮上存在 id recaptcha-audio-button...尝试 ID 选择器..例如

WebDriverWait(driver, 30).until(EC.presence_of_element_located(By.ID, "recaptcha-audio-button"))
driver.find_element(By.CSS_SELECTOR, "recaptcha-audio-button").click()
于 2018-02-03T07:44:14.853 回答
0

我不知道你是怎么写下这样的定位器的:a.rc-audiochallenge-tdownload-link,整个页面都没有这样的元素。网页后来改了吗?

在此处输入图像描述

于 2018-02-03T05:46:21.807 回答
0

要单击#recaptcha-audio-button,您可以使用(已测试):

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Firefox()
driver.get(url="https://www.google.com/recaptcha/api2/demo")
driver.switch_to.frame(0)
driver.find_element(By.CSS_SELECTOR, "div.recaptcha-checkbox-checkmark").click()
driver.switch_to.default_content()
driver.switch_to.frame(driver.find_element(By.XPATH, "//iframe[@title='recaptcha challenge']"))
driver.find_element(By.ID, "recaptcha-audio-button").click()
于 2018-12-13T13:40:59.760 回答