Перейти к содержимому

Namik

Регистрация: 11 авг 2021
Offline Активность: 13 янв 2022 06:21
-----

Мои темы

Проблема с импортом из другой папки

11 января 2022 - 05:17

Здравствуйте, только начинаю писать код, так что не судите строго). Проблема в том что не получается импортировать клас в другой файл, хотя указываю путь верно. 

 

 

 

login.py

 

from selenium import webdriver
import time
import unittest
from Selenium.POMProjectDemo.Pages.LoginPage import LoginPage



class loginTest(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        cls.driver = webdriver.Chrome(executable_path='D:\python\Selenium\chrome_driver\chromedriver.exe')#, options = webdriver.ChromeOptions())
        #options.add_experimental_option('excludeSwitches', ['enable-logging'])
        cls.driver.implicitly_wait(30)
        cls.driver.maximize_window()

 
    def test_01_login_valid(self):
        driver = self.driver
        driver.get('https://vk.com/')
        login = LoginPage(driver)
        login.enter_user_name()
        login.enter_user_password()
        login.login_button


    @classmethod
    def tearDownClass(cls):
        cls.driver.close()
        cls.driver.quit()
        print('test completed')

# if __name__ == '__main__':
#     unittest.main()

 

 

 

Loginpage.py

 

 

from Selenium.POMProjectDemo.Locators.Locators import locators
from auth_data import vk_password,vk_login
from POMProjectDemo.Locators import Locators

class LoginPage():
    def __init__(self, driver):
        self.driver = driver
        self.index_email_id = locators.index_email_id
        self.index_pass_id = locators.index_pass_id
        self.loginButton_id = locators.loginButton_id

    def enter_user_name(self):
        self.driver.find_element_by_id(self.loginField_id).clear()
        self.driver.find_element_by_id(self.loginField_id).send_keys(vk_login)

    def enter_user_password(self):
        self.driver.find_element_by_id(self.passwordField_id).clear()
        self.driver.find_element_by_id(self.passwordField_id).send_keys(vk_password)

    def login_button(self):
        self.driver.find_element_by_id(self.loginButton_id).click()

 

 

###########################################################################################################

Ошибка:

 

ModuleNotFoundError: No module named 'Selenium'


Не могу найти элемент

11 августа 2021 - 20:28

Ребята, только начал заниматься селениумом.

 

Значит так, дохожу до момента где надо кликнуть ' Accounts Receivable', а селениум его не находит.Перепробывал все методы + 

Implicit Wait , Explicit Wait. Если использую wait то возвращает "Message:       ". Как вы видите просто меседж без какой либо инфы, а если без WAIT то возвращает что такого элемента нет. 

 

 

 

 

try:
    driver.get(url_ngbss)
    print('base URL reached')
    login_input = driver.find_element_by_id('username')
    print('element found')
    login_input.click()
    login_input.clear()
    login_input.send_keys(ngbss_login)
    password_input = driver.find_element_by_id('password')
    password_input.click()
    password_input.clear()
    password_input.send_keys(ngbss_password)
    submit_button = driver.find_element_by_id('submitBtn')
    submit_button.click()
    driver.implicitly_wait(30)
    site_map = driver.find_element_by_xpath("//div[@id='sitemap']/div").click()
    driver.implicitly_wait(30)
    wait = WebDriverWait(driver,20)
    #accounts_receivable = driver.find_element_by_link_text('Accounts Receivable')
    #accounts_receivable = wait.until(EC.visibility_of_element_located((By.XPATH,"//div[@title = 'Accounts Receivable']")))
    #accounts_receivable = wait.until(EC.presence_of_all_elements_located((By.XPATH,"//li[@itemid='c_302']")))
    #accounts_receivable = driver.find_elements_by_class_name('body2')
    #accounts_receivable = driver.find_element_by_css_selector('div.body2').click()
    #accounts_receivable = Select(driver.find_element_by_xpath("/html/body/div[1]/div[1]").select_by_visible_text('Accounts Receivable'))
    #accounts_receivable = wait.until(EC.presence_of_element_located((By.XPATH,"//div[@id='catalog']/ul/li[4]/div[2]/div")))
    accounts_receivable = driver.find_element_by_xpath("//div[@id='catalog']/ul/li[4]/div[2]/div")
    accounts_receivable.click()

    time.sleep(5)
    
except Exception as ex:
    print(ex)
finally:
    driver.close()
    driver.quit()