我的POM的Selenium python代码无法正常工作,伙计们,我不知道我在粘贴代码时做错了什么。
index.py
位置为= MyProject/Testmethods/index.py
from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
from selenium.common.exceptions import ElementNotVisibleException
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
class Wepaythemaxindex(object):
def Locators(self,driver):
self.driver = driver
self.fname = "//input[@id='ContentPlaceHolder1_txt_fname']"
self.lname = "//input[@id='ContentPlaceHolder1_txt_lname']"
self.contact = "//input[@id='ContentPlaceHolder1_txt_phone']"
self.email = "//input[@id='ContentPlaceHolder1_txt_email']"
self.Location = "//select[@id='ContentPlaceHolder1_drp_pref_loc']"
self.findus = "//select[@id='ContentPlaceHolder1_ddlSource']"
self.clicknext = "//a[@id='inner-submit_next']"
self.year ="//select[@id='ContentPlaceHolder1_Drp_Year']"
self.make ="//select[@id='ContentPlaceHolder1_drp_Carname']"
self.textyear ="//input[@id='ContentPlaceHolder1_Drp_Year1']"
self.textmake = "//input[@id='ContentPlaceHolder1_drp_Carname1']"
self.getstarted = "//a[@id='ContentPlaceHolder1_vehicle_info_next']"
self.header ="//span[@class='cd-words-wrapper']"
self.content = '.paragraphs > .row '
def checkchromedriver(self):
print("---------Welcome to XXXXXXXXXX-----------")
print("-------MainForm------------")
self.UpdateLeadForm(self.driver)
print("-------SideForm------------")
self.SideForm(self.driver)
def UpdateLeadForm(self,driver):
box=["1","2","3","4","5"]
for button in box:
# Clicking on the car
driver.find_element_by_xpath("/html[1]/body[1]/div[1]/div[2]/div[1]/section[1]/div[1]/div[1]/div[2]/div[2]/div[3]/ul[1]/li[" +str(button)+ "]/a[1]/span[1]").click()
# Waiting for 10seconds
driver.implicitly_wait(10)
self.lead(driver)
def SideForm(self,driver):
form=["1","2","3","4","5"]
for clickform in form:
self.Scrolldown(driver)
driver.find_element_by_xpath("/html[1]/body[1]/div[1]/div[2]/div[1]/section[1]/div[1]/div[1]/div[2]/div[2]/div[3]/ul[2]/li[" +str(clickform)+ "]/a[1]/span[1]").click()
driver.implicitly_wait(10)
self.lead(driver)
def Scrolldown(self,driver):
SCROLL_PAUSE_TIME = 0.5
# Get scroll height
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
# Scroll down to bottom
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# Wait to load page
time.sleep(SCROLL_PAUSE_TIME)
# Calculate new scroll height and compare with last scroll height
new_height = driver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
last_height = new_height
def lead(self,driver):
# Typing the fname
elem = driver.find_element_by_xpath(self.fname)
elem.send_keys("test")
# Typing the Lname
elem2 = driver.find_element_by_xpath(self.lname)
elem2.send_keys("test")
# Typing the contact
driver.find_element_by_xpath(self.contact).send_keys("9176300256")
# Typing the email
driver.find_element_by_xpath(self.email).send_keys("koushick@rcktechiees.com")
select = Select(driver.find_element_by_xpath(self.Location))
select.select_by_index(2)
driver.implicitly_wait(10)
driver.get_screenshot_as_file("C:\\Users\\rck\\PycharmProjects\\Wepaythemax\\Screenshot\\Wepaythemax.png")
select1 = Select(driver.find_element_by_xpath(self.findus))
select1.select_by_visible_text("SIGNAGE")
elem = driver.find_element_by_xpath(self.clicknext)
elem.click()
year = driver.find_element_by_xpath(self.year)
try:
if year.is_displayed():
selectyear = Select(year)
selectyear.select_by_index(15)
print("element is Selected")
else:
driver.find_element_by_xpath(self.textyear).send_keys("2016")
except ElementNotVisibleException:
print(ElementNotVisibleException)
except NoSuchElementException:
print(NoSuchElementException)
make = driver.find_element_by_xpath(self.make)
try:
if make.is_displayed():
selectmake = Select(make)
selectmake.select_by_visible_text("HONDA")
print("Make is Selected")
else:
driver.find_element_by_xpath(self.textmake).send_keys("Test")
except NoSuchElementException:
print(NoSuchElementException)
except ElementNotVisibleException:
print(ElementNotVisibleException)
Getstarted = driver.find_element_by_xpath(self.getstarted)
Getstarted.click()
driver.implicitly_wait(15)
assert "http://xx.xx.xx.xx:xxxx/Thank_you.aspx" in driver.current_url
print("Lead Updated Succesfully!")
driver.get_screenshot_as_file(
"C:\\Users\\rck\\PycharmProjects\\Wepaythemax\\Screenshot\\Wepaythemaxthankyou.png")
driver.get("http://xx.xx.xx.xx:xxxx/")
我上面编写的代码用于索引页面,我需要在最终测试用例页面中访问它,因此我在下面做了这样的事情,
FinalTest.py
位置:Myproject/Testcase/FinalTest.py
import unittest
from selenium import webdriver
from TestMethods.index import Wepaythemaxindex
class Wepaythemax(unittest.TestCase):
def setUp(self):
self.driverchrome = webdriver.Chrome("F:\\New folder\\chromedriver.exe")
def test_Pages(self):
driver = self.driverchrome
driver.maximize_window()
driver.get("http://xx.xx.xx.xx:xxxx/")
driver.implicitly_wait(10)
for text_node in driver.find_elements_by_css_selector('.cd-words-wrapper > b'):
print(text_node.get_attribute('textContent'))
index = Wepaythemaxindex()
index.checkchromedriver()
def tearDown(self):
self.driverchrome.quit()
if __name__ == '__main__':
unittest.main()
The output is : It's Opening the Browser, Works Till text_node, when it comes to accessing the object of index page, it throwing different different error.
在Java中,我已经解决了许多面临的关键问题。但是作为python的新手,我找不到任何清晰的材料可以解决这个问题。
答案 0 :(得分:2)
您没有实现构造函数。例如:
def __init__(self, arg):
self.someArg = arg