首页 > 解决方案 > 带有 TypeError 的自动测试暂停:“str”对象不可调用

问题描述

我正在为一个在前端使用 Angular 10 的简单 Web 应用程序编写自动化 UI 测试。机器人需要单击一个按钮,该按钮会在屏幕上生成一个表格,然后它会在表格上查找特定条目。我不断收到以下错误:

在此处输入图像描述

下面是一个测试样本:

import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver import Firefox
from selenium.webdriver.common.keys import Keys

class Tags:

  starSysButton = '//li[button][1]'
  solPath = f"//td[contains(text(),'Sol')]"

@pytest.fixture
def browser():
  driver = Firefox()
  driver.implicitly_wait(10)
  yield driver
  driver.quit()

def test_basic_landing_page(browser):
  URL = 'http://localhost:4200'
  
  browser.get(URL)

  starElement = browser.find_element(By.XPATH(Tags.starSysButton))
  starElement.click()

  results = browser.find_element(By.XPATH(Tags.solPath))
  if results:
    assert results

我不确定问题是什么。我最初在对 find_element 的调用中直接传递了 XPATH 字符串,但得到了同样的错误,所以我创建了类标签,并以这种方式传递它们。还是同样的问题。

标签: pythonseleniumselenium-webdriver

解决方案


Selenium 文档,第 4 节

starElement = browser.find_element(By.XPATH, Tags.starSysButton)

结果 = browser.find_element(By.XPATH, Tags.solPath)


推荐阅读