Я не могу найти Элемент из-за рамки - PullRequest
0 голосов
/ 10 июня 2019

Я пытаюсь разработать систему автоматического бронирования.Поэтому мне нужно найти элемент: driver.find_element_by_link_text ("予 約 可").

Я могу найти элемент, если элемент виден после загрузки.(в примере кода это означает, что элемент находится в 02: 00-05: 30 в этом диапазоне). Поэтому я пытаюсь найти кадр, но мне не удалось.Я пытался найти решение в течение двух дней.

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException 


driver = webdriver.Chrome()

url = 'https://eikaiwa.dmm.com/list/?data%5Btab1%5D%5Bstart_time%5D=02%3A00&data%5Btab1%5D%5Bend_time%5D=25%3A30&data%5Btab1%5D%5Bgender%5D=0&data%5Btab1%5D%5Bage%5D=%E5%B9%B4%E9%BD%A2&data%5Btab1%5D%5Bfree_word%5D=Kim+Khim&date=2019-06-13&tab=0&sort=6'

driver.get(url)   


try:
    button = driver.find_element_by_link_text("予約可")
    driver.execute_script("arguments[0].scrollIntoView(false);", button) # move to the position of the button    
except NoSuchElementException:
    print('not found any opening')

1 Ответ

1 голос
/ 10 июня 2019

Элемент, который вы хотите, не прокручивается, поэтому не может взаимодействовать.

Вы можете найти элемент следующим образом:

button.location_once_scrolled_into_view

Но я не смог найти текст ссылки, вместо этого я нашел имя класса.

from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException 

driver = webdriver.Chrome()

url = 'https://eikaiwa.dmm.com/list/?data%5Btab1%5D%5Bstart_time%5D=02%3A00&data%5Btab1%5D%5Bend_time%5D=25%3A30&data%5Btab1%5D%5Bgender%5D=0&data%5Btab1%5D%5Bage%5D=%E5%B9%B4%E9%BD%A2&data%5Btab1%5D%5Bfree_word%5D=Kim+Khim&date=2019-06-13&tab=0&sort=6'

driver.get(url)   

try:
    #button = driver.find_element_by_link_text("予約可")
    button = driver.find_element_by_class_name("bt-open")
    button.location_once_scrolled_into_view
    button.click()
except NoSuchElementException:
    print('not found any opening')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...