#python #html #selenium
Вопрос:
Я пытаюсь использовать цепочки действий для нажатия кнопки с помощью python, но она просто отказывается работать, что бы я ни делал.
Проблема в том, что всякий раз, когда открывается веб-сайт, он открывается с наложением. Я хочу, чтобы моя программа нажала кнопку » ОК » на наложении. Какой бы код я ни написал, все заканчивается тем, что я нажимаю на само наложение.
Вот мой код:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
URL = 'https://sam.gov/search/?index=oppamp;page=1amp;sort=-relevanceamp;sfm[status][is_active]=trueamp;sfm[dates][responseDue][responseDueSelect]=customDateamp;sfm[dates][responseDue][responseDueFrom]=05/29/2021amp;sfm[dates][responseDue][responseDueTo]=05/29/2022amp;sfm[keywords][0][key]=541511amp;sfm[keywords][0][value]=541511'
driver.get(URL)
overlay = driver.find_element(By.ID, "cdk-overlay-0")
button = driver.find_element(By.CSS_SELECTOR, "button.usa-button")
ActionChains(driver).move_to_element(overlay).click(button).perform()
И соответствующий HTML-код с веб-страницы, на которую я смотрю, это:
<div id="cdk-overlay-0" class="cdk-overlay-pane" ...>
для наложения, и
<button class="usa-button">OK</button>
для самой кнопки.
Мой код всегда заканчивается тем, что я нажимаю только на наложение, а не на кнопку. В итоге это выглядит так (при нажатии на наложение появляется синий контур).:
Ответ №1:
Йоу, попробуй это
from selenium import webdriver
URL = 'https://sam.gov/search/?index=oppamp;page=1amp;sort=-relevanceamp;sfm[status][is_active]=trueamp;sfm[dates][responseDue][responseDueSelect]=customDateamp;sfm[dates][responseDue][responseDueFrom]=05/29/2021amp;sfm[dates][responseDue][responseDueTo]=05/29/2022amp;sfm[keywords][0][key]=541511amp;sfm[keywords][0][value]=541511'
driver = webdriver.Chrome()
driver.get(URL)
driver.find_element_by_xpath(r'/html/body/div/div[2]/div/sds-dialog-container/layout-splash-modal/div[4]/div[2]/div/button').click()
Я просто использовал xpath и щелкнул по нему без цепочек действий