Попробуйте нажать кнопку type = "button" с селеном, используя python - PullRequest
0 голосов
/ 15 октября 2019

Я хочу нажать на кнопку в https://www.airbnb.com/rooms/13921817?location=Seoul%2C%20South%20Korea&previous_page_section_name=1000. Я пробовал несколько кодов, но это не удалось.

HTML-код:

<li data-id="page-2" class="_1eqazlr">
 <button type="button" class="_1ip5u88" aria-label="Page 2" aria-busy="false">
  <div class="_1bdke5s">2</div>
 </button></li>

Вот код, который у меня естьпробовал:

add="https://www.airbnb.com/rooms/13921817?location=Seoul%2C%20South%20Korea&amp;previous_page_section_name=1000"

driver = webdriver.Chrome(executable_path="C:\Drivers\chromedriver_win32\chromedriver.exe")

driver.get(add)

path="//*[@id='reviews']/div/div/div/section/div[2]/div[3]/div/div/div/nav/span/div/ul/li[2]//button"

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH,path))).click()

В дополнение к указанному выше пути, я пробовал несколько разных XPATH следующим образом:

path="//button[contains(@class,\"_lip5u88\") and contains(@aria-label,\"Page 2\")]"

path="//*[@id='reviews']/div/div/div/section/div[2]/div[3]/div/div/div/nav/span/div/ul/li[2]//button"

path="//button[@type='button']//following::div[text()='2']"

path='.//button[[@type="button" and normalize-space()="2"]'

Получил такие ошибки:

selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <button type="button" class="_1ip5u88" aria-label="Page 2" aria-busy="false">...</button> is not clickable at point (214, 871). Other element would receive the click: <div class="_10ejfg4u">...</div>
  (Session info: chrome=77.0.3865.90)

or 

selenium.common.exceptions.TimeoutException: Message: 

Не могли бы вы помочь мне разобраться? Большое спасибо!

1 Ответ

0 голосов
/ 15 октября 2019

Это должно работать:

driver.execute_script("""
  document.querySelector('[aria-label="Page 2"]').click()
""")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...