Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Selenium:元素当前不可见,因此可能无法交互

Selenium:元素当前不可见,因此可能无法交互
EN

Stack Overflow用户
提问于 2016-09-19 21:09:29
回答 1查看 679关注 0票数 0

我正在尝试创建一个自动登录netflix网站的脚本:https://www.netflix.com/it/

这就是代码:

代码语言:javascript
运行
AI代码解释
复制
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
while True:
    driver.get("https://www.netflix.com/it/")
    login = driver.find_element_by_css_selector(".authLinks.signupBasicHeader")
    login.click()
    element = driver.find_element_by_name("email")
    element.send_keys("test1@email.com")
    submit = driver.find_element_by_css_selector(".btn.login-button.btn-submit.btn-small")
    submit.click()
    element2 = driver.find_element_by_name("password")
    element2.send_keys("test1")
    submit.click()

但它有时起作用,有时不起作用,并引发此异常:

代码语言:javascript
运行
AI代码解释
复制
Traceback (most recent call last):
  File "netflix.py", line 35, in <module>
    submit.click()
  File "/home/user/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webelement.py", line 72, in click
    self._execute(Command.CLICK_ELEMENT)
  File "/home/user/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webelement.py", line 461, in _execute
    return self._parent.execute(command, params)
  File "/home/user/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 236, in execute
    self.error_handler.check_response(response)
  File "/home/user/.local/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 192, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with
Stacktrace:
    at fxdriver.preconditions.visible (file:///tmp/tmp7otgskq8/extensions/fxdriver@googlecode.com/components/command-processor.js:10092)
    at DelayedCommand.prototype.checkPreconditions_ (file:///tmp/tmp7otgskq8/extensions/fxdriver@googlecode.com/components/command-processor.js:12644)
    at DelayedCommand.prototype.executeInternal_/h (file:///tmp/tmp7otgskq8/extensions/fxdriver@googlecode.com/components/command-processor.js:12661)
    at DelayedCommand.prototype.executeInternal_ (file:///tmp/tmp7otgskq8/extensions/fxdriver@googlecode.com/components/command-processor.js:12666)
    at DelayedCommand.prototype.execute/< (file:///tmp/tmp7otgskq8/extensions/fxdriver@googlecode.com/components/command-processor.js:12608)

异常说明web页面的一部分是不可见的(即使该部分实际上在页面中)……这是一种bug。我怎么才能绕过它呢?

EN

回答 1

Stack Overflow用户

发布于 2016-09-19 22:01:41

不需要将测试代码放入while循环中,因为登录表单应该提交一次。我猜当它成功工作时,下一次迭代会产生错误,因为没有表单。

您还可以在输入密码之前和之后单击submit按钮。最好是在表单填满后单击,如果可能,不要测试空表单。

代码语言:javascript
运行
AI代码解释
复制
from selenium import webdriver

driver = webdriver.Firefox()
driver.get("https://www.netflix.com/it/")
login = driver.find_element_by_css_selector(".authLinks.signupBasicHeader")
login.click()
element = driver.find_element_by_name("email")
element.send_keys("test1@email.com")
submit = driver.find_element_by_css_selector(".btn.login-button.btn-submit.btn-small")
submit.click()
element2 = driver.find_element_by_name("password")
element2.send_keys("test1")
submit = driver.find_element_by_css_selector(".btn.login-button.btn-submit.btn-small")
submit.click()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39582141

复制
相关文章
当前页面是否可见
Document.hidden属性来自于浏览器Page Visibility API。
公众号@魔术师卡颂
2020/08/26
2K0
selenium元素定位中css或者xpath不选择某一类元素
例如,下列标签中,不选择class为disable的span标签 则 这样写 dd:not(.disabled) > span 或者 dd:not(.disabled) span
小黑同学
2020/08/16
1.9K0
selenium元素定位中css或者xpath不选择某一类元素
selenium元素定位
IT测试前沿
muntainyang
2020/10/23
8810
selenium元素定位
Selenium元素定位
find_element_by_id() find_element_by_name() find_element_by_class_name() find_element_by_tag_name() find_element_by_link_text() find_element_by_partial_link_text() find_element_by_xpath() find_element_by_css_selector() 在这里将对各种元素定位方式统一使用百度首页进行示例,详细操作步骤有以下内容: 1.打开浏览器,进入百度首页(www.baidu.com); 2.百度页面输入关键字 www.testclass.cn 进行搜索; 3.关闭浏览器; 首先,通过前端工具(火狐浏览器的Firebug)或者直接按F12进入开发者模式查看具体前端代码:
Altumn
2019/10/21
1.1K0
Selenium元素定位
selenium元素定位
一、selenium元素定位 🐱‍🏍🐱‍👤🐱‍👓🏍🐱‍🚀总结一下元素定位方式,因为项目中会用到,爬虫也会用到,也是为了方便自己和方便后续的同事,总结一下。😄🤞😊😘 1.id定位 from selenium import webdriver from selenium.webdriver.common.by import By # 单个查找 find_element_by_id(locator) find_element(By.ID, locator) # 多个查找 find_elements_by_
懿曲折扇情
2022/08/24
8950
selenium元素定位
Selenium无法定位元素之切换Iframe和切换窗口
最近接了个项目,网页元素定位比以往的要全乎许多,多种多样的情况都遇到了,初级高级都用到了,最简单的初级比如直接通过id,name,class来定位获取,高级一点比如模糊查找,模糊匹配,前后查找等等。 今天要说一点,关于页面内嵌套的元素查找,以前的项目比较单一,没有遇到什么特别棘手的,最近就遇到了,我能在Chrome浏览器F12开发者模式下通过Xpath或者CSS定位到这个元素,但是当我在运行在脚本中的时候,搞了一上午(也应该多查下资料,不要在这里死磕)死活定位不到我要的元素,我就奇怪了,为什么会定位不到呢,是电脑出现问题还是脚本出现什么问题?
软测小生
2019/07/04
2K0
Selenium无法定位元素之切换Iframe和切换窗口
怎么理解 onStart可见但不可交互
这个问题看似简单,但涉及到的面还是比较多的,比如Activity生命周期的理解,进程的理解,以及View绘制的时机。
码上积木
2021/03/10
8070
Selenium 元素checkbox元素操作与元素等待
检测百度页面搜索按钮是否存在,存在就输入关键词“自学网 Selenium” 然后点击搜索
清风穆云
2021/08/09
1.6K0
python selenium 元素定位
left = element.location['x'] top = element.location['y'] right = element.location['x'] + element.size['width'] bottom = element.location['y'] + element.size['height']
用户5760343
2019/07/05
1.5K0
Selenium异常集锦
当测试工程师执行Selenium测试自动化用例时,可能会遇到很多陌生的Exception。在执行测试脚本时,有些Exception可能不是很常见,因为测试用例锁依赖的测试框架拥有足够健壮性以应对此类场景。这些未被预期的场景被称为异常场景,在使用Selenium进行自动浏览器测试时,通常来讲会遇到很多异常场景。
FunTester
2020/10/29
5.5K0
React技巧之检查元素是否可见
原文链接:https://bobbyhadz.com/blog/react-check-if-element-in-viewport[1]
chuckQu
2022/08/19
1.1K0
Traceback (most recent call last) 无法定位到元素python+selenium
#selenium.common.exceptions.InvalidArgumentException: Message: Expected [object Undefined] undefined
小黑同学
2020/08/16
1.7K0
Traceback (most recent call last) 无法定位到元素python+selenium
selenium webdriver——设置元素等待
如今大多数Web应用程序使用ajax技术,当浏览器在加载页面时,页面上的元素可能并不是同时被加载完成,这给定位元素的定位增加了困难,
周小董
2019/03/25
1.3K0
特斯拉欲拿“中国护照”,因此可能挡蔚来的路?
如果特斯拉先拿到生产资质,那么蔚来汽车要拿到上海资质需要等特斯拉的工厂建成且达成量产目标。
镁客网
2019/01/24
3760
特斯拉欲拿“中国护照”,因此可能挡蔚来的路?
如何使用Selenium Python爬取动态表格中的复杂元素和交互操作
Selenium是一个自动化测试工具,可以模拟浏览器的行为,如打开网页,点击链接,输入文本等。Selenium也可以用于爬取网页中的数据,特别是那些动态生成的数据,如表格,图表,下拉菜单等。本文将介绍如何使用Selenium Python爬取动态表格中的复杂元素和交互操作。
jackcode
2023/08/01
1.6K0
Selenium元素定位神器-ChroPath
在进行Web自动化测试时,我们多多少少都会用到元素定位工具,如Chrome的开发者工具、Firefox开发者工具等等。但定位复杂路径的时候,如XPath定位方式,所获取到的元素路径没有精简,而是复杂的路径,这样会在后期维护定位元素时很不方便。
wangmcn
2022/07/26
3.6K0
Selenium元素定位神器-ChroPath
Selenium之页面元素定位
HTML页面规定了id属性在HTML文档中必须是唯一的(页面id不唯一时,在编辑器中会标红显示,但是页面依然能正常加载)。id定位方法就是通过元素的id属性来查找元素,比如通过id定位百度输入框:
小博测试成长之路
2021/03/08
3.5K0
Selenium之页面元素定位
python selenium定位元素
查找元素: find_element_by_id find_element_by_name find_element_by_xpath find_element_by_link_text find_element_by_partial_link_text find_element_by_tag_name find_element_by_class_name find_element_by_css_selector 查找多个元素: find_elements_by_name find_elements_by_xpath find_elements_by_link_text find_elements_by_partial_link_text find_elements_by_tag_name find_elements_by_class_name find_elements_by_css_selector
用户5760343
2022/05/13
1.7K0
python+selenium-元素定位
  最近在学习web自动化测试,web自动化测试中元素定位是基本功也是很重要的一环,常用的元素定位方式网上都有很多的,一般采用强大的xpath方式来定位,xpath中又包含了很多其他方法。当然,在学习元素定位之前,需要要对前端要有一定的了解,比如HTML,CSS
py3study
2020/01/19
1.6K0
python+selenium-元素定位
点击加载更多

相似问题

元素当前不可见,因此可能无法与其交互

12

元素当前不可见,因此可能无法与[Selenium Webdriver+Python]交互。

11

元素当前不可见,因此可能无法与Selenium下拉Box Python交互。

37

元素当前不可见,因此可能无法与命令交互。

31

Selenium无法选择element.Getting“元素当前不可见,因此可能无法与”错误“交互。

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档