Framework=Robot Process Automation
IDE=Pycharm
Libary= mutliple libabaries selenium, robotframework etc.
我编写了一个简单的脚本来通过定位器识别web元素(输入文本框)。定位器可以是xpath、name或id。
THe脚本在通过控制台执行时运行良好,但在通过Jenkins.If执行时失败,我删除了这些定位器,我的脚本在Jenkins (安装在本地机器上)中运行良好。我试图在Jenkins中安装selenium插件,但仍然存在相同的错误。在詹金斯,我得到了这个错误
AttributeError: 'WebDriver' object has no attribute 'find_elements_by_name'
AttributeError: 'WebDriver' object has no attribute 'find_elements_by_xpath'
下面是我的脚本失败了
** Settings ***
Library SeleniumLibrary
*** Variables ***
${url} https://login
${browser} Chrome
*** Test Cases ***
open browser ${url} ${browser}
sleep 10
input text name:username Admin
sleep 10
input text xpath://body/div[@id='app']/div[1]/div[1]/div[1]/div[1]/div[2]/div[2]/form[1]/div[2]/div[1]/div[2]/input[1] admin123
sleep 10
(我增加睡眠是为了确保睡眠不是时间问题。)
以下脚本在Jenkins中运行良好
*** Settings ***
Library SeleniumLibrary
*** Variables ***
${url} https://
${browser} Chrome
*** Test Cases ***
PageTitle
open browser ${url} ${browser}
sleep 2
title should be Robot Framework
close browser
最初,我在控制台中得到了相同的错误,但是后来我在PhyCharm IDE中安装了SeleniumVersion3.3.0,它在控制台级别解决了这个问题
任何想法都将不胜感激。
发布于 2022-10-06 13:30:04
它失败了,因为它使用的是较新版本的selenium
,它删除了一些不推荐的方法,例如find_elements_by_name
和4.3.0
版本中的find_elements_by_xpath
。参见更改:https://github.com/SeleniumHQ/selenium/blob/a4995e2c096239b42c373f26498a6c9bb4f2b3e7/py/CHANGES
Selenium 4.3.0
* Deprecated find_element_by_* and find_elements_by_* are now removed (#10712)
* Deprecated Opera support has been removed (#10630)
* Fully upgraded from python 2x to 3.7 syntax and features (#10647)
* Added a devtools version fallback mechanism to look for an older version when mismatch occurs (#10749)
* Better support for co-operative multi inheritance by utilising super() throughout
* Improved type hints throughout
现在,您需要为您的情况使用以下方法:
driver.find_elements("name", NAME)
或
driver.find_elements("xpath", XPATH_SELECTOR)
https://stackoverflow.com/questions/73973800
复制相似问题