Получение xpath на основе кнопки входа из веб-ссылки - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь запустить Selenium, используя python, и мне удалось запустить браузер и ввести имя пользователя и пароль, но я не смог запустить xpath для кнопки входа в систему.

     Python Script 
         import selenium
         from selenium import webdriver
         from selenium.webdriver.common.by import By
         from selenium.webdriver.support.ui import Select
         from selenium.common.exceptions import NoSuchElementException
         from selenium.webdriver.common.keys import Keys
         mydriver = webdriver.Chrome(executable_path=r"C:\Mypath\chromedriver.exe")
         baseurl = "http://www.gcrit.com/build3/admin/"
         mydriver.get(baseurl)
         username = "admin"

     xpaths = { 'usernameTxtBox' : "//input[@name='username']",
       'passwordTxtBox' : "//input[@name='password']",
       'submitButton' :   "//input[@name='login']"
     }      mydriver.find_element_by_xpath(xpaths['usernameTxtBox']).send_keys(username)
           password = "admin@123"
           mydriver.find_element_by_xpath(xpaths['passwordTxtBox']).send_keys(password)

    All other steps run fine except this one: 
     mydriver.find_element_by_xpath(xpaths['loginButton']).click()

Я получаю это сообщение об ошибке

      mydriver.find_element_by_xpath(xpaths['loginButton']).click()
      KeyError: 'loginButton'

       I tried getting the Xpath from element as well but I got the same error. @id="tdb1"]

HTML-код кнопки входа (было бы полезно узнать любой эффективный способ идентификации элементов):

    <button id="tdb1" type="submit" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary ui-priority-secondary" role="button" aria-disabled="false"><span class="ui-button-icon-primary ui-icon ui-icon-key"></span><span class="ui-button-text">Login</span></button>

Ответы [ 2 ]

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

KeyError в python обычно возникает, когда ваш ключ не найден.Вы уверены, что 'loginButton' находится в наборе существующих ключей?

Из официальных библиотек python,

исключение KeyError

Возникает, когда ключ сопоставления (словарь) отсутствуетнайдено в наборе существующих ключей.

См. эту ссылку.

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

Если вы определили где-то словарь xpaths, вам следует проверить, действительно ли он выглядит так:

xpaths = {'usernameTxtBox': '//input[@name="username"]', 'passwordTxtBox': '//input[@name="password"]', 'loginButton': '//button[@id="tdb1"]'}

Обновление

Обратите внимание, что вы определилиОтправьте кнопку с помощью клавиши submitButton, пытаясь получить ее значение с помощью клавиши loginButton key

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