Python Selenium Не удается найти заголовок элемента (xpath) - PullRequest
0 голосов
/ 04 октября 2018
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from bs4 import BeautifulSoup
import collections
import datetime

browser = webdriver.Chrome()
browser.get('https://libcal.library.ucsb.edu/rooms.php?i=12405')
browser.find_element_by_link_text('18').click() #selects date
browser.find_element_by_xpath('//*[@title="2314, 12:00am to 12:30am, Thursday, October 18, 2018"]').click()

Я пытаюсь найти элемент с заголовком, как указано в моем коде.Это в основном выбор временного интервала, на который доступна комната, но я не могу сделать это с помощью xpath.Я хочу, чтобы это повторялось в разные дни, а идентификатор менялся каждый день.

<a href="#" class="lc_rm_a" data-seq="36825101" id="647749313" 
onclick="return showBookingForm(this.id,'2314','12:00am - 12:30am, 
Thursday, October 18, 2018', '30');" style="width: 30px; float:left; 
display:block;" title="2314, 12:00am to 12:30am, Thursday, October 18, 
2018">&nbsp;</a>

1 Ответ

0 голосов
/ 05 октября 2018

Это будет отлично работать:

from selenium import webdriver

browser = webdriver.Chrome()
browser.implicitly_wait(2)
browser.get('https://libcal.library.ucsb.edu/rooms.php?i=12405')
browser.find_element_by_link_text('17').click()
code = '2574'
time = '1:00am to 1:30am'
date = browser.find_element_by_xpath('//*[@id="s-lc-rm-tg-h"]').text
browser.find_element_by_xpath('//*[@title="' + code + ', ' + time +  ', ' + date + '"]' ).click()
browser.close()

Однако не забывайте, что вы получите сообщение об ошибке, если элемент не активен (комната недоступна).Имейте это в виду!

...