Я работаю над селеном + Python и имею проблему с атрибутом switch_to_window. Switch_to_window работает хорошо, когда я использую его независимо, я имею в виду непосредственно использование Python. Кроме того, просмотрите мой код и предложите внести необходимые изменения / изменения. В настоящее время я объявил необходимые методы в def __init, так как я получаю сообщение об ошибке «Драйвер не найден» для всех методов, кроме первого. Был не совсем уверен, как это сделать? Сделано ли это на основе решения, найденного в других сообщениях на stackoverflow.
Вот код:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from selenium.webdriver.common.action_chains import ActionChains
import unittest
import io
from selenium.webdriver.support.expected_conditions import frame_to_be_available_and_switch_to_it
from selenium.webdriver.remote import switch_to
class test_ParallelWorking(unittest.TestCase):
def __init__(self):
self.test_setUpchrome()
self.test_PrerequisiteBrowser1()
self.test_PrerequisiteBrowser2()
self.test_validation()
def test_setUpchrome(self):
self.driver = webdriver.Chrome('C:\\Selenium\\Driver\\chromedriver\\chromedriver.exe')
self.driver.maximize_window()
self.driver.get('http://10.197.194.137/vaudisx/#/')
first_window = self.driver.window_handles[0]
print("Inside chrome")
#
def test_PrerequisiteBrowser1(self):
print("test_PrerequisiteBrowser1")
self.driver.find_element_by_css_selector("#name").send_keys("admin")
self.driver.find_element_by_css_selector("[name='password']").send_keys("admin")
time.sleep(2)
self.driver.find_element_by_xpath("//span[contains(text(),'Anmelden')]").click()
time.sleep(2)
self.driver.find_element_by_xpath("/html/body/app-root/div/app-company-selection/div/div[2]/div[2]/form/button/span").click()
time.sleep(5)
self.driver.find_element_by_xpath("//small[contains(text(),'letzte 31 Tage')]").click()
ele = self.driver.find_element_by_xpath("//input[@placeholder='Filtern nach Auftrag und Kundenname']")
ele.send_keys("1161")
ele.send_keys(u'\ue007')
time.sleep(2)
self.driver.find_element_by_xpath("//a[contains(text(),'1161')]").click()
time.sleep(2)
self.driver.find_element_by_xpath("//div[@class='col8']/mat-icon").click()
time.sleep(2)
self.driver.find_element_by_name("Teilegruppe").clear()
self.driver.find_element_by_name("Teilegruppe").send_keys("5")
driver.find_element_by_id("saveSPBtn0").click()
def test_PrerequisiteBrowser2(self):
self.driver.execute_script("window.open('http://10.197.194.137/vaudisx/#/')")
time.sleep(5)
second_window = self.driver.window_handles[1]
time.sleep(5)
self.driver.switch_to_window(second_window)
ele = self.driver.find_element_by_xpath("//*[@id='main-dashboard']/div/div[1]/div/div[2]/div/div[2]/div/small")
ele.click()
ele = self.driver.find_element_by_xpath("//input[@placeholder='Filtern nach Auftrag und Kundenname']")
ele.send_keys("1161")
ele.send_keys(u'\ue007')
time.sleep(2)
self.driver.find_element_by_xpath("//a[contains(text(),'1161')]").click()
self.driver.find_element_by_xpath("//div[@class='col8']/mat-icon").click()
#
#
def test_validation(self):
self.switch_to_window(self.test_setUpchrome.first_window)
time.sleep(3)
self.driver.find_element_by_id("saveSPBtn0").click()
self.driver.switch_to_window(self.test_PrerequisiteBrowser2.second_window)
self.driver.find_element_by_name("Teilegruppe").clear()
time.sleep(3)
self.driver.find_element_by_name("Teilegruppe").send_keys("2")
self.driver.find_element_by_id("saveSPBtn0").click()
time.sleep(5)
myWebsite = test_ParallelWorking()
myWebsite.driver
if __name__ == '__main__':
loader = unittest.TestLoader()
выход
Finding files... done.
Importing test modules ... Inside chrome
test_PrerequisiteBrowser1
done.
Traceback (most recent call last):
File "C:\Users\nkumar7\.p2\pool\plugins\org.python.pydev.core_7.2.1.201904261721\pysrc\_pydev_runfiles\pydev_runfiles.py", line 468, in __get_module_from_str
mod = __import__(modname)
File "C:\Users\nkumar7\eclipse-workspace\Practise\Practise.py", line 111, in <module>
myWebsite = test_ParallelWorking()
File "C:\Users\nkumar7\eclipse-workspace\Practise\Practise.py", line 24, in __init__
self.test_validation()
File "C:\Users\nkumar7\eclipse-workspace\Practise\Practise.py", line 84, in test_validation
self.switch_to_window(self.test_setUpchrome.first_window)
AttributeError: 'test_ParallelWorking' object has no attribute 'switch_to_window'
ERROR: Module: Practise could not be imported (file: C:\Users\nkumar7\eclipse-workspace\Practise\Practise.py).
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK