#python #selenium #automation #webautomation
#python #селен #автоматизация #веб-автоматизация
Вопрос:
Я пытаюсь нажать на кнопку, но, похоже, она не может быть отключена.
driver = webdriver.Chrome('chromedriver')
driver.get(k['product_url'])
driver.maximize_window()
driver.find_element_by_xpath('//*[@id="_jstl__header_r"]/div/div[2]/div/div/div[2]/form/button').click()
time.sleep(2)
driver.execute_script("window.open('https://www.shoppingexpress.com.au/_mycart');")
time.sleep(5)
elem = driver.find_element_by_xpath('//button[text()="Checkout Now"]').click()
print("Element is visible? " str(elem.is_displayed()))
driver.execute_script('$("button").click();')
opts.add_experimental_option("detach", True)
Фотография проверки:
Пожалуйста, помогите, я думаю, что кнопка скрыта, хотя, похоже, я не могу получить к ней доступ
Ответ №1:
Попробуйте извлечь его из заголовка, и вам также не помешает добавить явные ожидания:
driver.execute_script("window.open('https://www.shoppingexpress.com.au/_mycart');")
# Wait for button to be clickable
elemWait = EC.element_to_be_clickable((By.XPATH, '//button[@title="Checkout Now"]'))
WebDriverWait(driver, 10).until(elemWait)
# Click button
elem = driver.find_element_by_xpath('//button[@title="Checkout Now"]').click()
Если это не сработает, возможно, он все еще сосредоточен на предыдущей вкладке. Поэтому вам, возможно, придется переключиться на тот, который вы только что открыли (хотя мне не нужно было в Firefox):
# Switch to current tab
handles = driver.window_handles
driver.switch_to.window(driver.window_handles[len(handles) - 1])