Элемент Python Selenium не взаимодействует, элемент скрыт

#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])