【问题标题】:'WebElement' object has no attribute 'set_value'“WebElement”对象没有属性“set_value”
【发布时间】:2015-03-05 11:37:45
【问题描述】:

我想使用 appium 在 android 应用程序的编辑框中设置一个值。我正在使用 python 脚本来自动化它。但我总是遇到一些错误。
我的 python 脚本是

import os
import unittest
import time
from appium import webdriver
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By 
import uiautomator
import math



        element = self.driver.find_element_by_class_name('android.widget.EditText')
        element.set_value('qwerty')
        element = self.driver.find_element_by_name("Let's get started!")
        element.click()
        time.sleep(5)

每当我运行它时,我总是会遇到错误:

AttributeError: 'WebElement' object has no attribute 'set_value'

【问题讨论】:

  • 你的代码 sn-p 不完整。或者你可以试试 dir(element) 看看它是否有属性'set_value'。
  • 我查看了小部件 EditText 并且您没有使用这种方法。有关解释,请查看我的答案。

标签: python python-3.x appium


【解决方案1】:

就像错误一样简单: type 元素没有 set_value(str) 或 setValue(str) 方法。 也许你的意思是

.setText('qwerty')?

因为 EditText 小部件中没有 setText 方法: http://developer.android.com/reference/android/widget/EditText.html

【讨论】:

    【解决方案2】:

    要在 WebElement 中键入值,请使用 Selenium WebDriver 方法send_keys:

    element = self.driver.find_element_by_class_name('android.widget.EditText')
    element.send_keys('qwerty')
    

    有关详细信息,请参阅Selenium Python Bindings documentation。

    【讨论】:

    • 这似乎已经过时了,因为尝试插入像“@”这样的字符会导致另一个错误:“无法从不可键入的键构造 KeyEvent”。您发布的链接也不再有效。
    猜你喜欢
    • 2016-07-28
    • 2020-03-09
    • 1970-01-01
    • 2016-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    相关资源
    最近更新 更多