selenium.common.exceptions.InvalidArgumentException: Сообщение: ошибка неверного аргумента при вызове get () с URL-адресами, считанными из текстового файла с Selenium Python - PullRequest
2 голосов
/ 15 января 2020

У меня есть список URL в файле .txt, который я хотел бы запустить с использованием selenium.

Позволяет сказать, что имя файла b.txt, в нем 2 URL-адреса (точно отформатированные, как показано ниже) : https://www.google.com/, https://www.bing.com/,

Я пытаюсь сделать так, чтобы селен запускал оба URL (из файла .txt), однако кажется, что каждый раз, когда код достигает строки «driver.get», код завершается ошибкой.

url = open ('b.txt','r')
url_rpt = url.read().split(",")
options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
driver = webdriver.Chrome(chrome_options=options)
for link in url_rpt:
   driver.get(link)
driver.quit()

Результат, который я получаю при запуске кода:

Traceback (most recent call last):
File "C:/Users/ASUS/PycharmProjects/XXXX/Test.py", line 22, in <module>
driver.get(link)
File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site- 
packages\selenium\webdriver\remote\webdriver.py", line 333, in get
self.execute(Command.GET, {'url': url})
File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site- 
packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\ASUS\AppData\Local\Programs\Python\Python38\lib\site- 
packages\selenium\webdriver\remote\errorhandler.py", line 242, in 
check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: invalid 
argument
(Session info: headless chrome=79.0.3945.117)

Любое предложение о том, как переписать код?

1 Ответ

2 голосов
/ 16 января 2020

Это сообщение об ошибке ...

Traceback (most recent call last):
  .
    driver.get(link)
  .
    self.execute(Command.GET, {'url': url})
  .
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: invalid argument
  (Session info: chrome=79.0.3945.117)

... означает, что url, переданный в качестве аргумента get(), был недействительным аргументом.

Я смог воспроизвести тот же Traceback , когда файл text , содержащий список URL-адресов, содержит символ пробел после разделителя последнего URL-адреса. Возможно, пробел присутствовал в конце b.txt как https://www.google.com/,https://www.bing.com/,.


Отладка

Идеальная отладка подход будет заключаться в том, чтобы напечатать url_rpt, который выявил бы пробел следующим образом:


Решение

Если вы удалите символ пробел из своего собственного код будет выполняться просто идеально:

options = webdriver.ChromeOptions() 
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Chrome(options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
url = open ('url_list.txt','r')
url_rpt = url.read().split(",")
print(url_rpt)
for link in url_rpt:
   driver.get(link)
driver.quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...