python - 按钮在while循环中不可点击
问题描述
嗨,我想尝试使用 selenium 自动进行点击速度测试,但出现一些错误主要问题是按钮可以被点击,但在 while 循环中不可点击。
我的代码是这个
import selenium
import os
from tkinter import *
from tkinter import filedialog
import time
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
from selenium import webdriver
from selenium import webdriver
import contextlib as textmanager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
from urllib3.packages.six import b
PATH= "C:\chromedrivers\chromedriver.exe"
driver= webdriver.Chrome(PATH)
list_of_words=[]
driver.get("https://clickspeedtest.com/")
time.sleep(2)
driver.find_element_by_xpath("//*[@id='ez-accept-all']").click()
button= driver.find_element_by_xpath("//*[@id='clicker']").click()
k=0
time.sleep(0.5)
while k != 100:
button.click()
k=k+1
我得到的错误是这不知道为什么
Traceback (most recent call last):
File "c:\Users\ramhelsinki\projects\click_text.py", line 36, in <module>
button.click()
AttributeError: 'NoneType' object has no attribute 'click'
这是按钮或点击区域的源代码
<button id="clicker" type="button" class="rbutton" style="width: 100%; height: 250px; display: none;">Click Here to start playing</button>
解决方案
第一次单击后按钮可能正在更改。
尝试这个:
button= driver.find_element_by_xpath("//*[@id='clicker']")
while button.is_displayed():
button.click()
time.sleep(0.1)
button= driver.find_element_by_xpath("//*[@id='clicker']")
k=k+1
另请注意,5 秒后游戏结束,您将无法再次单击该按钮。您必须按照我在此处的建议,在单击按钮之前验证该按钮是否已显示。
推荐阅读
- xaml - Xamarin Forms:无法更新 UI 上的自定义控件
- c - 无法在 ssl/tls 中获取客户端证书
- highcharts - 用情节带或区域突出周末
- java - 如何删除 .camel 子文件夹中的旧文件?
- reactjs - 如何仅使用 Gulp 和 Browserify 在 React 中消除死代码?
- html - 如何使用 Emmet 在 VSCode for HTML 中添加注释标签?
- pointers - 为什么我的函数使用按值调用方法?
- postgresql - 从 Postgress 中的单独列添加分钟 + 秒
- javascript - SyntaxError: await 仅在异步函数中有效。无法纠正
- tensorflow - 结合两个infrance graph tensorflow mobilnetssd v2