Селен (Python) Нажмите на позицию ранее расположенного элемента - PullRequest
0 голосов
/ 30 апреля 2020

Я очень новичок в Selenium (2 дня). Я пытаюсь написать сценарий, который поможет мне забронировать место доставки в местном супермаркете. Слоты обновляются в случайное время в течение дня, и я постоянно скучаю по ним, независимо от того, как часто я проверяю. До того, как слоты станут доступны, на странице отобразится следующее

</span>
<div>06:00 - 08:00</div>
</div>
<div class="delivery-schedule-options">
<span class="delivery-slot-message d-xs-none d-md-inline-block">
<span class="d-md-none">Not available - more slots added soon</span>
<span class="d-xs-none d-md-inline">Not available - more slots added soon</span>
</span>

Я хочу определить местоположение текста «Недоступно - больше слотов добавлено в ближайшее время» и нажать на него, когда страница обновится с доступными слоты. Прокрутка страницы может измениться, поэтому я не хочу занимать позицию относительно какого-либо угла окна браузера. Может быть, возможно определить элемент справа от временного диапазона (06:00 - 08:00)?

Пока не появятся слоты, я не знаю точно, что показывает xml для меня чтобы идентифицировать элемент напрямую, и я не видел, чтобы они стали доступны, так как я начал искать решение этой проблемы с помощью Selenium.

Да, некоторые могут посчитать этот подход морально нежелательным. Но я включаю требования моего пожилого соседа в свой заказ, если это поможет! :)

1 Ответ

0 голосов
/ 30 апреля 2020

Попробуйте это

elements=driver.find_element_by_xpath("//div[@class='delivery-schedule-options']//span[contains(text(),'Not available')]");
...