gpt4 book ai didi

python - Selenium 和Python : what is the correct way to define WebElement as property

转载 作者:行者123 更新时间:2023-12-01 09:04:04 24 4
gpt4 key购买 nike

请参阅此类(class):

浏览器

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.action_chains import ActionChains as actions


class Browser:

driver = webdriver.Chrome("C:\\chromedriver.exe")
webDriverWait = WebDriverWait(driver, 60)
action = actions(driver)

def goto(self, url):
Browser.driver.maximize_window()
Browser.driver.get(url)

首页

from seleniumbase.Browser import Browser
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ec
from seleniumbase.BaseActions import BaseActions


class HomePage:
url = "myURL"

def __init__(self):
self.usernametextbox = Browser.webDriverWait.until(ec.visibility_of_element_located((By.ID, "login_email")))
self.passwordtextbox = Browser.webDriverWait.until(
ec.visibility_of_element_located((By.CSS_SELECTOR, "tr[id=mockpass] input")))
self.loginbutton = Browser.webDriverWait.until(ec.element_to_be_clickable((By.NAME, "login")))

def getusernametextbox(self):
return self.usernametextbox

def getpasswordtextbox(self):
return self.passwordtextbox

def getloginbutton(self):
return self.loginbutton

def login(self):
self.getusernametextbox().send_keys("myuser@gmail.com")
self.getpasswordtextbox().send_keys("12345678")
self.getloginbutton().click()

如您所见,我将我的 WebElements 定义为方法。

这是执行此操作的写入方法还是有更好的方法?

这是执行此操作的写入方法还是有更好的方法?

最佳答案

不要在__init__中定义每个元素,尝试使用下面的:

@property
def getusernametextbox(self):
return Browser.webDriverWait.until(ec.visibility_of_element_located((By.ID, "login_email")))

@property
def getpasswordtextbox(self):
return Browser.webDriverWait.until(ec.visibility_of_element_located((By.CSS_SELECTOR, "tr[id=mockpass] input")))

@property
def getloginbutton(self):
return Browser.webDriverWait.until(ec.element_to_be_clickable((By.NAME, "login")))

def login(self):
self.getusernametextbox.send_keys("myuser@gmail.com")
self.getpasswordtextbox.send_keys("12345678")
self.getloginbutton.click()

关于python - Selenium 和Python : what is the correct way to define WebElement as property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52218013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com