首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python错误消息-元素不可见

python错误消息-元素不可见
EN

Stack Overflow用户
提问于 2019-07-09 09:32:14
回答 2查看 138关注 0票数 1

我得到了这个错误:

代码语言:javascript
复制
selenium.common.exceptions.ElementNotVisibleException: Message: element not visible. or Element is not currently interactable.

我该怎么解决呢?

要素:

代码语言:javascript
复制
input class="artfld col-all-min ng-pristine ng-invalid ng-touched" formcontrolname="id" maxlength="10" placeholder="身分證字號" type="text"

代码:

代码语言:javascript
复制
from selenium import webdriver
import time
from PIL import Image
from pynput.keyboard import Key,Controller
browser = webdriver.Chrome()
browser.get('https://mma.sinopac.com/SinoCard/Activity/Register?Code=TLDI')
time.sleep(0.3)
browser.find_element_by_xpath("/html/body/app-root/div/app-activity-register/div/div[2]/div/div/section/app-activity-register-verification/form/div[1]/table/tbody/tr[3]/td/input").send_keys("1234")

问题2:单击红色按钮后,如何在弹出窗口中使用python selenium获取元素?

元素:按钮type=“class=”swal2-确认swal2样式的“aria-标签=”style=“背景颜色: rgb(48,133,214);边框左颜色: rgb(48,133,214);边框-右颜色: rgb(48,133,214);">確定/button。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-09 14:38:48

若要在所需元素中发送字符序列,必须为WebDriverWait导入element_to_be_clickable(),并且可以使用以下解决方案之一:

  • 使用CSS_SELECTOR: 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"input.artfld.col-all-min.ng-untouched.ng-pristine.ng-invalidformcontrolname='id'"))).send_keys("YOYO") driver.get(“https://mma.sinopac.com/SinoCard/Activity/Register?Code=TLDI"”)WebDriverWait(驱动程序)
  • 使用XPATH: ( 20).until(EC.element_to_be_clickable((By.XPATH,)driver.get(“https://mma.sinopac.com/SinoCard/Activity/Register?Code=TLDI"”WebDriverWait(驱动程序)//input@class=‘artfld-all-min ng-未动ng-原始ng-无效’和@formcontrolname=‘id’).send_keys(“YOYO”)
  • 注意事项:您必须添加以下导入: 从selenium.webdriver.support.ui导入WebDriverWait从selenium.webdriver.common.by导入从selenium.webdriver.support导入expected_conditions作为EC
  • 浏览器快照:

票数 0
EN

Stack Overflow用户

发布于 2019-07-09 10:05:31

可以使用显式等待代替time.sleep(0.3),如下所示:

代码语言:javascript
复制
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

browser = webdriver.Chrome()

# wait for an element to appear.
wait = WebDriverWait(browser, 10)
waited_element = wait.until(EC.visibility_of_element_located((By.XPATH, xpath_of_element)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56949525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档