如何解决使用硒优化线程
我的目标:
我使用for
循环来运行多个Selenium脚本线程。
这些脚本都是相同的,并且遵循硒的基本原理
- 单击按钮
- 将文本发送到文本框
- 等待元素可点击或可见
- 以及使用
time.sleep()
来模仿人类行为。
所有这些脚本都需要在两分钟内完成
- 例如我在6:00 pm开始循环,所有线程应在6:02 pm完成
请注意,每个脚本需要1-1.5分钟才能完成,所以我的问题不是要增加脚本时间
我的问题:
当我运行我的代码时,它可以正常运行,并且一切都很好,但是我觉得它没有得到优化。
例如,当线程启动时,鼠标指针上通常会有一个蓝色的加载圆圈,因此我知道线程在占用cpu。
当我使用Tkinter GUI运行硒线程时,我不希望这些线程引起延迟或降低GUI的速度。
所以最后我的问题是我如何使用硒优化线程。
import threading
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import webdriverwait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import time
class go(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
def run(self):
options = webdriver.ChromeOptions()
options.add_argument('--headless',)
self.browser = webdriver.Chrome('chromedriver.exe',options=options)
self.browser.get('https://www.wikipedia.org/')
webdriverwait(self.browser,10).until(
EC.presence_of_element_located((By.ID,"searchInput"))).send_keys('Python',Keys.ENTER)
time.sleep(3)
print('Moved To Next Section ')
webdriverwait(self.browser,10).until(
EC.presence_of_element_located((By.PARTIAL_LINK_TEXT,"Computing"))).click()
time.sleep(3)
print('Moved To Next Section ')
webdriverwait(self.browser,"People"))).click()
time.sleep(3)
print('Moved To Next Section ')
webdriverwait(self.browser,"Roller coasters"))).click()
time.sleep(3)
print('Moved To Next Section ')
webdriverwait(self.browser,"Vehicles"))).click()
time.sleep(3)
print('Moved To Next Section ')
webdriverwait(self.browser,"Weaponry"))).click()
time.sleep(100)
for count in range(70):
go().start()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。