Почему произошла ошибка python3 с селеном - PullRequest
0 голосов
/ 17 сентября 2018

Я недавно изучал Python, но у меня есть какая-то ошибка.

окружение python3, chrome, webdriver (chrome)

from selenium import webdriver
import time
import random
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

driver = webdriver.Chrome("./chromedriver.exe") 

mobile_emulation = { "deviceName": 'Nexus 5' }
chrome_options = webdriver.ChromeOptions()


chrome_options.add_experimental_option("mobileEmulation", mobile_emulation)


driver = webdriver.Remote(command_executor='https:xxx.com',desired_capabilities = chrome_options.to_capabilities())


driver.get("https:/xxx.com")

num = random.randint(11111111 , 99999999)

red = driver.find_element_by_class_name("***")
red.click()

numBox = driver.find_element_by_name("***")
numBox.send_keys(int(num))

reader = driver.find_element_by_id("***")
reader.send_keys("***")

comment = driver.find_element_by_css_selector(" ***")
comment.click()

и ошибка результата здесь

Traceback (most recent call last):
  File "C:\python\pad\pad.py", line 16, in <module>
    driver = webdriver.Remote(command_executor='https:xxx.com',desired_capabilities = chrome_options.to_capabilities())
  File "C:\Users\***\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 156, in __init__
    self.start_session(capabilities, browser_profile)
  File "C:\Users\***\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 254, in start_session
    self.session_id = response['sessionId']
TypeError: string indices must be integers

Я думаю, что ошибка, потому что номер этого кода включает в себя десятичную.но я не могу найти такой номер.

пожалуйста, дайте мне совет

1 Ответ

0 голосов
/ 17 сентября 2018

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

Traceback (most recent call last):
  File "C:\python\pad\pad.py", line 16, in <module>
    driver = webdriver.Remote(command_executor='https:xxx.com',desired_capabilities = chrome_options.to_capabilities())
.
TypeError: string indices must be integers

... подразумевает, что TypeError при вызове webdriver.Remote() метода.

В соответствии с испытаниями вашего кода при использовании webdriver.Remote() с аргументом command_executor возможно, вы пытались выполнить свои тесты в Конфигурация Selenium Grid .

Согласно документации Документация :

  • command_executor: объект remote_connection.RemoteConnection, используемый для выполнения команд.

    • Пример:

      command_executor='http://127.0.0.1:4444/wd/hub'
      
    • Полная реализация:

      driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities = chrome_options.to_capabilities())
      

Примечание : Здесь мы рассмотрели, что Selenium Grid Hub и Selenium Grid Node настроены, настроены и работают успешно с конфигурацией по умолчанию на локальном хосте.

Решение (Python 3.6)

Ваш эффективный блок кода будет:

from selenium import webdriver

chrome_options = webdriver.ChromeOptions() 
chrome_options.add_argument("start-maximized")
chrome_options.add_argument('disable-infobars')
#driver = webdriver.Remote(command_executor='https:xxx.com', desired_capabilities = chrome_options.to_capabilities())
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities = chrome_options.to_capabilities())
driver.get('https://www.google.co.in')
print("Page Title is : %s" %driver.title)
driver.quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...