我正在尝试使用Python和Selenium webdriver刷新一个页面,直到元素保持启用状态才能单击。唯一的问题是刷新页面并进行验证。 这是一个制定apointment的日历。页面中的代码提取是:
<tr>
<td title="Not able" class="otherMonthDay">30</td>
<td title="Not able" class="otherMonthDay">31</td>
<td title="All busy" class="calendarCellRed">1</td>
<td title="Not able" class="noSelectableDay">2</td>
<td title="All busy" class="calendarCellRed">3</td>
<td title="Not able" class="noSelectableDay">4</td>
<td title="Not able" class="noSelectableDay">5</td>
</tr>
我的代码是:
from selenium import webdriver
import selenium.webdriver.support.ui as ui
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
alert = driver.switch_to_alert()
driver.get("https://calendar page css")
for i in range (0,20):
driver.implicitly_wait(2) # seconds
driver.find_element_by_xpath('//*[@title="Day enabled"]').click()
driver.refresh()
alert.accept()
我希望点击刷新页面时启用的日期。
答案 0 :(得分:0)
我猜测当你执行上面的代码时,你会得到一个 NoSuchElementException 。
这就是我的代码看起来像:
from selenium import webdriver
import selenium.webdriver.support.ui as ui
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.implicitly_wait(2)
alert = driver.switch_to_alert()
driver.get("https://calendar page css")
while(True):
try:
driver.find_element_by_xpath('//*[@title="Day enabled"]').click()
driver.refresh()
alert.accept()
break
except Exception as e:
driver.refresh()
continue
希望这会有所帮助。如果有任何问题,请告诉我。