Как нажать на кнопку загрузки с помощью Selenium и Python - PullRequest
0 голосов
/ 17 января 2020

Я пытаюсь загрузить файл Excel, используя Selenium Python, используя следующий код:

download=driver.find_element_by_css_selector("span[data-reactid='.0.1.0.0.1.1.1.0.1.0.1'>Download Orders]")

Элемент кнопки загрузки выглядит следующим образом: enter image description here

Часть кода выше не работает. Может кто-нибудь помочь?

Ответы [ 3 ]

0 голосов
/ 17 января 2020

Требуемый элемент - это элемент React , чтобы найти его, и click() на элементе, который вы должны вызвать WebDriverWait для element_to_be_clickable(), и вы можете использовать любой из следующих Стратегии локатора :

  • Использование XPATH с normalize-space():

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[normalize-space()='Download Orders']"))).click()
    
  • Использование XPATH и contains():

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[contains(., 'Download Orders')]"))).click()
    
  • Примечание : Вы должны добавить следующие импорта:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
0 голосов
/ 18 января 2020

Я согласен с Muzzamil, что использованный вами локатор CSS кажется неправильным. @ необходим для выбора атрибута data-reactid. Вы можете попробовать XPath:

//span[@data-reactid='.0.1.0.0.1.1.1.0.1.0.1'] 

Если вы хотите включить также текст, попробуйте:

//span[@data-reactid='.0.1.0.0.1.1.1.0.1.0.1'][contains(text(),'Download Orders')]
0 голосов
/ 17 января 2020

Ваш CSS локатор неверен. Пожалуйста, попробуйте щелкнуть ниже xpath.

//span[.='Download Orders']
...