происходит сбой селена: TypeError: объект 'str' не вызывается - PullRequest
0 голосов
/ 10 июля 2019

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

На веб-сайте вам нужно нажать на изображение, которое отправит заказ, чтобы дать вам файл.В случае Firefox вам нужно указать, хотите ли вы скачать или сохранить его.Это уже решено, однако когда дело доходит до перехода на следующий веб-сайт, происходит сбой.

Проблема в том, что последняя строка приводит к TypeError: 'str' object is not callable.

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList", 2)
profile.set_preference("browser.download.manager.showWhenStarting", False)
profile.set_preference("browser.download.dir", "D:path")
profile.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/vnd.google-earth.kml+xml")

for i in urls['tubicacion']:  
    driver = webdriver.Firefox(firefox_profile=profile, 
                           executable_path=r'path\geckodriver-v0.24.0-win64\geckodriver.exe')

    driver.maximize_window()

    driver.get(i)
    elemen = driver.find_element_by_xpath('//*[@id="GOOGLE"]').click()
    driver.implicitly_wait(0)
    follow = WebDriverWait(driver,5).until(EC.invisibility_of_element_located(By.XPATH('//*[@id="GOOGLE"]'))).click().close()

У меня также естьпробовал последнюю строку как:

WebDriverWait(driver,5).until(EC.invisibility_of_element_located(By.XPATH('//*[@id="GOOGLE"]').text)).click().close()

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

Использование By.XPATH с кортежем

WebDriverWait(driver,5).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="GOOGLE"]')))
0 голосов
/ 10 июля 2019

Это должно исправить вашу проблему, удалите .text. Я также удаляю .close

WebDriverWait(driver,5).until(EC.invisibility_of_element_located(By.XPATH('//*[@id="GOOGLE"]'))).click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...