Получение информации таблицы соответствия с солениумом в Python 3 - PullRequest
0 голосов
/ 21 апреля 2020

Я пишу робота веб-автоматизации с солениумом в python 3.8, который извлекает данные о продажах из интерфейса администратора, чтобы отправить сообщение через интерфейс администратора, чтобы поблагодарить их за покупку. Продажи проводятся в виде таблицы со следующей структурой.

<tr id="sale_row">
  <td>Month | Day | Year | time of sale</td>
  <td>Customer name | <a href="Link to message customer">Message Customer</a></td>
  <td>item Purchased</td>
  <td>Purchase Amount</td>
</tr>

Я хочу отправить сообщение только тем заказам, которые были сделаны за последние x дней (именно это и вызывает проблему, поскольку я не могу связать даты с href).

Пока мне удалось выбрать только те даты, которые я хотел получить, но не могу понять, как получить второй td, содержащий href, в систему обмена сообщениями.

Чтобы сопоставить даты, я создал строку, соответствующую формату их отметки времени, затем набрал для l oop требуемый диапазон дней и добавил вывод в список, а другой l oop который просматривает страницу, выбирая даты, а затем сравнивая их со списком требуемых дат и проверяя совпадение. (даты хранятся в 1-ом тд, который является единственным с классом «text-left»

    cm = today_date.strftime("%b")
    cd = today_date.day
    target_day = cd - 7
    days = range(target_day,cd+1)    
    sold_month = bot.find_elements_by_class_name("text-left")
    target_days = []
    active_sales =[]
    for day in days:
        target_date = target_days.append(cm+' '+str(day)+','+' '+str(cy))
    for month in sold_month:
        sale=active_sales.append(month.text[:-10]) 
    for active_sale in active_sales: 
        #print("Active sale:",active_sale)
        for target_day in target_days:
         #   print("Target Day:",target_days)
            if target_day == active_sale:
                print("Result:", active_sale)

. Приведенный выше список выбирает только те дни, которые нужны без проблем. Чтобы получить ссылку на Система обмена сообщениями во втором тд. Я попробовал следующее в последнем операторе if, он возвращает все ссылки для каждой продажи, что имеет смысл, но я не могу понять, как получить ссылку на систему обмена сообщениями на основе второго тд. 1-е число находится в диапазоне дат:

sales = bot.find_elements_by_xpath('//a[contains(@href, "/Inbox/New/")]')

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

1 Ответ

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

Удалось поработать, получив элементы tr с помощью xpath, а затем перебрав их, чтобы получить td в каждом tr. А затем нарезать подстроки, чтобы получить необходимую мне информацию от каждого td

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...