我使用 Ruby On Rails 和 Minitest 运行系统测试,但显示错误。
错误: RequestsTest#test_Admin_User_should_create_request: 硒::WebDriver::错误::ElementClickInterceptedError: 元素点击被拦截:元素输入标签框#itemsClick">...在点 (686, 23) 处不可点击。 其他元素将收到点击:... (会话信息:chrome=120.0.6099.130) 测试/系统/requests_test.rb:480:在execute_test_new_request' 测试/系统/requests_test.rb:54:在类中的块:RequestsTest'
HTML:
<a id="request__tags-list" href="#" class="input-tag-items" data-action="click->input-tag-box#itemsClick"></a>
我的测试:
tags_list = find("#request__tags-list")
puts tags_list.rect
tags_list.click # click on link
我尝试使用click_link方法,但它也不起作用。显示相同的错误。
我注意到“tags_list.rect”打印的坐标与tags_list坐标不对应。
#<struct Selenium::WebDriver::Rectangle x=316.6037902832031, y=31.733491897583008, width=739, height=20>
实际上,Y 坐标在页面下方更远,大约为 480。
知道发生了什么。
谢谢!
所以:Windows 11
Ruby 版本: ruby 3.2.2(2023-03-30 修订版 e51014f9c0)[x64-mingw-ucrt]
Rails 版本:Rails 7.0.8
更新:
问题是我购买笔记本电脑时将屏幕分辨率配置为125%。由于某种原因,Chrome 计算出错误的元素坐标。使用 Firefox 不会发生这种情况。
现在坐标显示正确:
#<struct Selenium::WebDriver::Rectangle x=315.7134704589844, y=347.7594451904297, width=738, height=20>
Beartech,感谢您的帮助。