首页 > 编程知识 正文

jmeter点击运行按钮无效,silverchains

时间:2023-05-06 04:53:22 阅读:126679 作者:3768

在Selenium中,使用ActionChains动作链处理元素非常有用,而且可以省去放置元素的麻烦。 但是,这里面也有不小心踩了洞的时候。 请特别注意使用名为click的函数。 否则,不会“点击”预期的元素。

来吧,看看案例。

被检页面: https://log in.Sina.com.cn/sign up/sign up? 输入=家庭页面

测试需求:

在元素对齐方式下,单击“新闻”复选框。click (函数中的“娱乐”复选框),通过在ActionChains中模拟按键盘上的选项卡键将焦点切换到“娱乐”复选框

代码运行现象描述:

在元素放置方法中,已正确选中“新闻”复选框【】使用ActionChains方法运行时,“娱乐”复选框未被选中,“新闻”复选框将被清除

代码如下:

fromseleniumimportwebdriverfromselenium.webdriverimportactionchainsfromselenium.web driver.com mon.keysimportkeys #火狐布拉新浪注册页面driver.get ) ' https://log in.Sina.com.cn/sign up/sign up? entry=来自home page浏览器开发人员工具的“新闻”复选框中的CSS选择器路径news _ CSS='.checkls tlabel 3360 nth-child (1)输入: nth-child . find _ element _ by _ CSS _ selector (news _ CSS ) #单击“新闻”复选框,获取初始聚焦位置CK_news.click(# ),然后单击

发现问题了吗? 在ActionChains行动链中,click ()函数并没有按照我们的想法运行!

尝试剪切click函数的部分源码

位置 libsite -包 seleniumweb drivercommonaction _ chains.py

需要注意一些:

此函数具有默认参数on_element,默认值为None; 如果传递了页面元素,请单击此页面元素。 如果指定的元素无法到达,请单击当前焦点元素。

上面的代码没有传递click函数的参数。 也就是说,您正在单击当前页面的焦点元素。 那么,当前页面的焦点要素是哪个?

让我们继续从源代码中阅读一个名为ActionChains的类的说明:

class ActionChains(object):。 。

生成用户操作。

whenyoucallmethodsforactionsontheactionchainsobject,

theactionsarestoredinaqueueintheactionchainsobject。

When you call perform (,theeventsarefiredintheorderthey

Are队列上电。

明白了吧。 只有在调用名为perform ()的函数时,才会顺序执行先前编写的一系列操作链。

也就是说:

在ActionChains语句之前,焦点位于名为“新闻”的复选框中。 在运行perform ()之前,焦点位置位于名为“新闻”的复选框中。 运行perform ()之前的click ) )操作也是焦点元素“新闻”的单击操作,因此不仅没有选中“娱乐”,而且已经选中的“新闻”也会被检出

看看接下来怎么解决吧。 总体思路是断开前面的动作链,使点击操作独立。

更改前的错误代码:

actionchains(driver ).move_to_element ) CK_news ).send_keys ) keys.tab ).click ).(性能参数)

更改后的代码:

actionchains(driver ).move_to_element ) CK_news ).send_keys ) keys.tab ).perform ) actionchains ) de

更改后分析:

当模拟按下选项卡时,perform立即运行,当前焦点元素的位置(新闻)实际发生了变化,定位于以下元素(娱乐) : 在switch_to操作中,导航到当前的活动(焦点)元素,即“娱乐”复选框。 在这种情况下,执行“单击”单击操作即可。

附加最终代码:

fromseleniumimportwebdriverfromselenium.webdriverimportactionchainsfromselenium.web driver.com mon.keysimportkeys #火狐布拉新浪注册页面driver.get ) ' https://log in.Sina.com.cn/sign up/sign up? entry=来自home page浏览器开发人员工具的“新闻”复选框中的CSS选择器路径news _ CSS='.checkls tlabel 3360 nth-child (1)输入: nth-child r.find _ element _ by _ CSS _ selector (news _ CSS ) #单击“新闻”复选框,获取初始聚焦位置ck_news.click (),然后单击焦点元素切换actionchains(driver ).move_to_element的send_keys(keys.tab ).perform )按顺序提供操作链转至焦点元素(娱乐) -单击-运行)作用)单击最新的焦点元素actionchains (驱动程序) _move_to_eller

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。