我目前有一个HTML页面,我通过Selenium打开并点击元素,填写表单并保存。
但这很慢,我真的想加快速度。 我想同时运行多个浏览器,为每个浏览器提供不同的xpaths
点击。这可能吗?
截至目前,我有一个包含三个User对象的列表。我想为每个用户运行3个单独的selenium进程,这两个进程都访问同一个网页,但是点击不同的元素。我想同时这样做。
这是我的代码(不工作):
def main():
pool = Pool(processes=4)
pool.map(bookRooms, users)
...
def bookRooms(users):
if not users:
logging.error("No available times")
else:
driver = Browser('phantomjs')
driver.visit(url)
for user in users:
for xpath in user.xpaths:
driver.find_by_xpath(user.getXPath()).click()
driver.find_by_xpath("id('save')").click()
driver.find_by_name("username").fill(user.getUsername())
driver.find_by_name("password").fill(user.getPassword())
driver.find_by_name("submit").click()
driver.close()
所以如果你想象我的列表看起来像这样:
[User1, User2, User3]
如何调用bookRooms()
方法,使其并行运行:
bookRooms(User1)
bookRooms(User2)
bookRooms(User3)
...
基本上,分解列表并在每个元素上运行方法。 Selenium甚至能以这种方式工作吗?
谢谢