收到错误:未为 appium 定义名称“webdriver”

Posted

技术标签:

【中文标题】收到错误:未为 appium 定义名称“webdriver”【英文标题】:Getting error :name 'webdriver' is not defined for appium 【发布时间】:2015-10-28 11:52:54 【问题描述】:

我正在通过 appium Inspector 录制示例脚本,在运行时,我收到了这样的错误。我的脚本是 python 语言。

File "second.py", line 14, in <module>
wd = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps) NameError: name 'webdriver' is not defined

下面是我的脚本。

import os
from selenium.webdriver.firefox.webdriver import WebDriver
from selenium.webdriver.common.action_chains import ActionChains
import time

success = True
desired_caps = 
desired_caps['appium-version'] = '1.0'
desired_caps['platformName'] = 'ios'
desired_caps['platformVersion'] = '8.2'
desired_caps['deviceName'] = 'iPhone 6'
desired_caps['app'] = os.path.abspath('/Users/admin/Library/Developer/Xcode/DerivedData/MyApp-podyodvceucybuaaiiuoprthidqh/Build/Products/Debug-iphonesimulator/MyApp.app')

wd = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps)
wd.implicitly_wait(60)

def is_alert_present(wd):
    try:
        wd.switch_to_alert().text
        return True
    except:
        return False

try:
    wd.find_element_by_name("Accept").click()
    wd.find_element_by_name("Sign In").click()
finally:
    wd.quit()
    if not success:
        raise Exception("Test failed.")

请帮忙

【问题讨论】:

【参考方案1】:

你需要导入webdriver

from selenium import webdriver

【讨论】:

或者,import selenium.webdriver——但是你需要在你对 webdriver 的调用前加上 selenium.【参考方案2】:

失败所在的行是wd = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps)

在你的脚本顶部你做from selenium.webdriver.firefox.webdriver import WebDriver

Python 对变量名区分大小写。你要么需要做: wd = WebDriver.Remote('http://0.0.0.0:4723/wd/hub', desired_caps) 要么 from selenium.webdriver.firefox.webdriver import WebDriver as webdriver

除非出于某种原因您需要将其称为 webdriver,否则我会推荐前者。

【讨论】:

以上是关于收到错误:未为 appium 定义名称“webdriver”的主要内容,如果未能解决你的问题,请参考以下文章

减少颤振计数器上的数量,错误:未为“字符串”类型定义运算符“-”

getcontentresolver() 未为该类型定义

在重置和启动应用程序时出现“错误:读取 ECONNRESET”

Firebase Firestore 错误:未为“对象”类定义运算符“[]”

错误:未为颤振中的“FirebaseMessaging”类型定义“配置”方法

错误“未为 UserManager 类型定义方法 createUser(String, int)”