Запуск сценария селена для проведения некоторого автоматизированного тестирования на servicenow Ошибка получения элемента не найдена при попытке заполнить поле на веб-странице.На странице входа есть фрейм.Но после входа на следующей странице я не думаю, что есть iframe.Также попробовал driver.switch_to.default_content (), но это, похоже, не помогло.Я знаю, что элемент есть и имеет этот идентификатор, потому что я посмотрел на HTML.Также попытался заполнить пару других полей, но имел ту же проблему.Какие-либо предложения?Благодарю.
Первоначально URL-адрес, на который он пытается перейти, - https://dev85222.service -now.com / инцидент.do , но перед этим браузер переходит на страницу входа, которая https://dev85222.service -now.com / navpage.do , после входа в систему вы будете перенаправлены на инцидент.Как только скрипт получает второй URL, он выдает ошибку -Элемент не найден Я думаю, что это может быть связано с переключением iframes
Код -
from selenium import webdriver
import time
import unittest
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select
from datetime import date
from selenium.webdriver.common.action_chains import ActionChains
class IncidentCreate(unittest.TestCase):
def setUp(self):
self.driver = webdriver.Firefox()
def test_selenium(self):
#
identifier = "AUTOMATED TESTING"
module = "INCIDENT"
action = "CREATE"
job_name = ""
today = str(date.today())
driver = self.driver
base_url = "https://dev85222.service-now.com/incident.do"
driver.get(base_url)
driver.implicitly_wait(5)
driver.switch_to.frame("gsft_main")
username = driver.find_element_by_id("user_name")
username.send_keys("admin")
password = driver.find_element_by_id("user_password")
password.send_keys("Liverpool28")
password.send_keys(Keys.RETURN)
identifier_inc = ("AUTOMATED TESTING - INCIDENT - %s" %today)
driver.switch_to.default_content()
time.sleep (10)
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "incident.category"))
)
except:
print("Element not found")
Ошибка - Элемент не найденE ============================================================================ ОШИБКА: test_selenium ( main .IncidentCreate) ---------------------------------------------------------------------- Трассировка (последний вызов был последним): Файл "C: /Users/user/Documents/Automation/FFOX_CLOUD_INC_CREATEv1.py", строка 66, в категории test_selenium = driver.find_element_by_id ("инцидент. Категория") Файл "C: \ Users \ user \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 359, в find_element_by_id вернуть self.find_element (by = By.ID,value = id_) Файл "C: \ Users \ user \ AppData \ Local \ Programs \ Python \ Python36 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py", строка 966, в find_element 'значение': значение}) ['value'] Файл "C: \ Users \ user \ AppData \ Local \ Programs \Python \ Python36 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 320, в файле execute self.error_handler.check_response (response) Файл" C: \ Users \ user \ AppData \ Local \ Programs \ Python "\ Python36 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py ", строка 242, в check_response поднять exception_class (message, screen, stacktrace) selenium.common.exceptions.NoSuchElementException: Сообщение: невозможно найти элемент: [id = "инцидент. категория"]
----------------------------------------------------------------------
Ran 1 test in 41.024s