Загрузить APK с Python и Selenium на веб-страницу, интерпретированную как URL - PullRequest
0 голосов
/ 19 февраля 2020

Я хочу загрузить .apk файл в онлайн-сканер Касперского, используя selenium и Python. Однако файл интерпретируется как URL, когда я использую метод selenium send_keys ().

Соответствующий HTML выглядит следующим образом:

    <div class="container">
      <div class="div-field-home">
        <div class="div-hero-scanner-wrapper">
<!-- ======= -->

          <div class="acenter pdv-1x" id="drop-area">
            <form action="" id="SendForm">
              <div class="d-inline">
                  <div class="tags-inline amiddle file-load-group">
                      <input id="txt-input-01" type="text" class="small" placeholder="Drag-and-drop a file or paste a link here" maxlength="2000" txtvalue="">
                      <a href="#" class="d-inline bt-attach bt-attach-file"><img src="/resources/img/attach.png" class="w-100" alt=""><img src="/resources/img/attach_inactive.png" class="w-100" alt=""></a>
                      <a href="#" class="btn upper small bt-attach-res bt-attach-file">Attach file</a>
                      <a href="#" class="btn upper clr-ff bg-02 small bt-check bt-disable" analytics-event="StartScan.Click">Scan</a>
                  </div>

Код:

kaspersky_base_URL = "https://virusdesk.kaspersky.com/#"

driver = webdriver.Firefox()
driver.get(kaspersky_base_URL)
file = "/home/user/filepath"

driver.implicitly_wait(30)

input = driver.find_element_by_id("txt-input-01")
input.send_keys(file)

driver.implicitly_wait(60)

links = driver.find_elements_by_xpath('//a[contains(@href, "#")]')
for elem in links:
    if 'SCAN' in elem.text:
        elem.click()

Я также пытался изменить вход type=text на type=file , Это изменяется, но та же самая ошибка продолжает происходить. Я думаю, что проблема может быть в том, что нужно щелкнуть ссылку атаки файла, чтобы текст был интерпретирован как файл. Но не совсем уверен.

Любая помощь будет оценена!

1 Ответ

0 голосов
/ 19 февраля 2020

Кажется, вы были достаточно близко. Чтобы загрузить a .apk файл в онлайн-сканер Kaspersky , используя Selenium и , вам нужно вызвать WebDriverWait для element_to_be_clickable() while:

  • Перетаскивание файла apk из локальной системы или
  • Предоставление ссылки apk url.

Следуя второму способу предоставления ссылки apk url, вы можете использовать любой из следующих Стратегий поиска :

apk_scan

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