python - Selenium Webdriver (Python):如何为“send.key”行设置页面对象?
问题描述
这里是硒的新手。我正在尝试将这行代码优化为页面对象文件。这是在搜索字段框中键入“USA”的实际脚本:
driver.find_element_by_xpath("//input[@id='country']").send_keys("USA")
我这样做的方式一直给我一个错误,所以我不确定我做错了什么(见下文):
实际测试用例文件:
from pageObjects.Confirm_page import ConfirmPage
class TestOne(BaseClass):
def test_endtoend2(self):
confirmPage = ConfirmPage(self.driver)
confirmPage.getCountryName().send_keys("USA")
页面对象文件
from selenium.webdriver.common.by import By
class ConfirmPage:
def __init__(self, driver):
self.driver = driver
typeCountry = (By.XPATH, "//input[@id='country']")
def getCountryName(self):
self.driver.find_elements(*ConfirmPage.typeCountry)
错误信息:
> confirmPage.getCountryName().send_keys("USA")
E AttributeError: 'NoneType' object has no attribute 'send_keys'
解决方案
错误说 nonetype 没有 send_keys ,因为 getcountryname() 没有返回任何东西,你应该在那里返回一些东西并使用 find_element 而不是 elements
from selenium.webdriver.common.by import By
class ConfirmPage:
def __init__(self, driver):
self.driver = driver
typeCountry = (By.XPATH, "//input[@id='country']")
def getCountryName(self):
return self.driver.find_element(*ConfirmPage.typeCountry)
推荐阅读
- android - onPreviewFrame 在某些设备中返回旋转 180 度的图像
- java - 将 ImageView 中的图像与右上角对齐
- vba - 使用两个不同的数据透视表拥有相同的图表信息
- c# - .net core - 模型虚拟属性未加载
- java - 如何在 Spring Boot 2 中为 Spring Batch 配置数据源以进行测试
- netsuite - 如何在 Freemarker 中乘以 string.currency 字段?
- sql - 多种条件下的内连接导轨
- tensorflow - 在 Julia 中构建 TensorFlow 时出错,
- swift - 使用主键更新领域对象 (Swift)
- fortran - 如何处理格式化整数输入中的空白