我正在尝试创建一个刮板,并且为了访问页面,我需要单击接受cookie按钮。引用按钮的HTML是:
<div class="qc-cmp2-summary-buttons">
<button mode="secondary" size="large" class=" css-1hy2vtq">
<span>MORE OPTIONS</span>
</button><button mode="primary" size="large" class=" css-47sehv">
<span>AGREE</span></button></div>
我要点击的按钮是第二个,命名为"AGREE"
我试着:
driver.find_element(By.CLASS_NAME, " css-47sehv").click()
得到错误selenium.common.exceptions.InvalidSelectorException: Message: invalid selector:指定了一个无效或非法的选择器
由于类名值前有空格而收到的错误。
类名之间的空格用于分隔多个类名。
因此,要使用这个特定的类名,您可以尝试这样做(不带空格):
driver.find_element(By.CLASS_NAME, "css-47sehv").click()
但是css-47sehv
似乎是一个动态生成的类名,所以我建议使用更固定的属性来定位该元素。
试试这个定位器:
driver.find_element(By.XPATH, "//button[contains(.,'AGREE')]").click()
为了给你更好的答案,我们需要看到网页和所有的硒代码
尝试使用By.CSS_SELECTOR。查找元素并复制其选择器