gpt4 book ai didi

python - EC 无法使用另一个文件中的定位器

转载 作者:行者123 更新时间:2023-11-30 22:00:55 27 4
gpt4 key购买 nike

我正在尝试将定位器与页面对象类分开。它与 driver.find_element 完美配合。但如果我尝试将它与 EC 一起使用,例如 self.wait.until(EC.visibility_of_element_located(*OrderLocators.file_upload_in_process))

我收到此错误

File "C:\FilePath\ClabtFirstForm.py", line 95, in wait_for_file_upload
wait.until(EC.visibility_of_element_located(*OrderLocators.file_upload_in_process))
TypeError: __init__() takes 2 positional arguments but 3 were given

我的测试方法

def test_files_regular(self):
project_path = get_project_path()
file = project_path + "\Data\Media\doc_15mb.doc"
self.order.button_upload_files()
self.order.button_select_files(file)
self.order.wait_for_file_upload()

页面对象类

class CreateOrder(object):

def __init__(self, driver):
self.driver = driver
self.wait = WebDriverWait(driver, 25)

def button_upload_files(self):
self.driver.find_element(*OrderLocators.button_upload_files).click()

def button_select_files(self, file):
self.driver.find_element(*OrderLocators.button_select_files).send_keys(file)

def wait_for_file_upload(self):
self.wait.until(EC.visibility_of_element_located(*OrderLocators.file_upload_in_process))
self.wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "[ng-show='item.isSuccess']")))

定位器

class OrderLocators(object):

button_upload_files = (By.CLASS_NAME, 'file-upload-label')
button_select_files = (By.CLASS_NAME, 'input-file')
file_upload_in_process = (By.CSS_SELECTOR, "[ng-show='item.isUploading']")

最佳答案

当您使用 * 将参数传递给 visibility_of_element_ located() 时,您实际上是在传递扩展的可迭代 OrderLocators.file_upload_in_process。也就是说,这个调用:

visibility_of_element_located(*OrderLocators.file_upload_in_process)

,等同于:

visibility_of_element_located(By.CLASS_NAME, 'input-file')

请注意第二行中如何使用两个参数实际调用该方法。

同时,这个条件的constructor expects only a single argument - 两个元素的元组/列表;因此异常(exception)。

修复 - 将其期望的内容(元组本身)传递给它,而不扩展它:

visibility_of_element_located(OrderLocators.file_upload_in_process)

关于python - EC 无法使用另一个文件中的定位器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54199833/

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