Селен Python, я пытаюсь закрыть кнопку повара ie, но она заканчивается нажатием на объявление. - PullRequest
0 голосов
/ 09 апреля 2020

Я пытался закрыть кнопку повара ie на whoscored.com, я нашел кнопку, однако, когда программа нажимает, она нажимает на объявление за кнопкой, и в итоге открывается новая страница, а не закрывается. кнопка повара ie. Есть идеи, что я могу сделать?

url='https://www.whoscored.com/Search/?t=Crystal+Palace'
browse=webdriver.Chrome()
browse.get(url)

time.sleep(4) 

cacheButton=browse.find_elements_by_xpath('//button')
cacheButton[1].click() #This is the "I ACCEPT" button.

Вот html для кнопки:

<button class="qc-cmp-button" onclick="window.__cmpui(&quot;setAndSaveAllConsent&quot;,!0)"> I accept </button>

Буду признателен, если кто-нибудь сможет мне помочь.

1 Ответ

0 голосов
/ 09 апреля 2020

Индуцировать WebDriverWait () и ждать element_to_be_clickable () и следующих xpath.

WebDriverWait(browse,15).until(EC.element_to_be_clickable((By.XPATH,"//button[@class='qc-cmp-button' and contains(.,'I accept')]"))).click()

Добавить следующие библиотеки.

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

Код :

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

url='https://www.whoscored.com/Search/?t=Crystal+Palace'
browse=webdriver.Chrome()
browse.get(url)
WebDriverWait(browse,15).until(EC.element_to_be_clickable((By.XPATH,"//button[@class='qc-cmp-button' and contains(.,'I accept')]"))).click()

Обозреватель sanpshot:

enter image description here

Обновление :

cookie=btn=WebDriverWait(browse,15).until(EC.presence_of_element_located((By.XPATH,"//button[@class='qc-cmp-button' and contains(.,'I accept')]")))
browse.execute_script("arguments[0].click();", cookie)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...