簡體   English   中英

pycharm- python 與 selenium web 驅動程序。 得到錯誤 object has no attribute driver

[英]pycharm- python with selenium web driver. Get error object has no attribute driver

我正在嘗試使用 selenium web 驅動程序在 python 上的 tesco 網站上運行基本自動化,使用 Z4149CE0EE30A909A183F622C。 我能夠創建 1 個 function 並在其中包含所有內容並且可以正常工作。 但是,當我將其全部拆分為不同的功能時,我會在以下位置收到以下錯誤消息:

driver = self.driver

AttributeError:“FirstTest”object 沒有屬性“驅動程序”

到目前為止我的代碼:

import unittest
from selenium import webdriver

class FirstTest(unittest.TestCase):

def test_setUp(self):
    self.driver = webdriver.Chrome()
    self.driver.maximize_window()
    self.driver.get("http://tesco.com")

    self.tearDown()

def test_websiteCheck(self):
    driver = self.driver
    assert "Tesco - Supermarkets | Online Groceries, Clubcard & Recipes" in driver.title

    self.tearDown()

def test_loginPage(self):
    driver = self.driver
    signIn = self.driver.find_element_by_link_text("Sign in")
    signIn.click()
    username = self.driver.find_element_by_name("username")
    username.send_keys("test1234@hotmail.com")
    password = self.driver.find_element_by_name("password")
    password.send_keys("test")
    self.driver.find_element_by_xpath("/html/body/div/div/div[2]/div/div/div/div[2]/div/form/button").click()

def test_pickingGroceries(self):
    self.driver = self.driver
    self.driver.find_element_by_xpath("/html/body/div[1]/div/nav/div[1]/ul/li[1]/div/div[1]/a").click()
    self.driver.find_element_by_xpath("/html/body/div[1]/div/nav/div[1]/ul/li[1]/div/div[1]/div/div[2]/div[1]/ul/li[2]/a/h3/span").click()

關於我做錯了什么的任何想法?

您是否先致電test_SetUp(self)
您應該創建一個def __init__(self): function 而不是在創建 class 的 object 實例時運行

you are not calling test_SetUp function anywhere and not returning anything from test_SetUp function.My suggestion would be use init function instead of test_SetUp.Then in other functions you are creating driver=self.driver, so use driver.functions instead of self.driver again .

from selenium import webdriver
import unittest

class FirstTest(unittest.TestCase):

def __init__(self):
    self.driver = webdriver.Chrome()
    self.driver.maximize_window()
    self.driver.get("http://tesco.com")

    self.tearDown()

def test_websiteCheck(self):
    driver = self.driver
    assert "Tesco - Supermarkets | Online Groceries, Clubcard & Recipes" in 
    driver.title

    self.tearDown()

def test_loginPage(self):
    driver = self.driver
    signIn = driver.find_element_by_link_text("Sign in")
    signIn.click()
    username = driver.find_element_by_name("username")
    username.send_keys("test1234@hotmail.com")
    password = driver.find_element_by_name("password")
    password.send_keys("test")

def test_pickingGroceries(self):
    driver = self.driver

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM