我想使用selenium在多个浏览器上运行我的脚本。到目前为止,我可以通过一次打开一个浏览器来执行操作。例如:-注册到亚马逊。我希望能够同时注册两个用户到亚马逊。
这是我目前拥有的代码。
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select
driver.get("https://www.amazon.com/ap/register?openid.pape.max_auth_age=0&openid.return_to=https%3A%2F%2Fwww.amazon.com%2F%3Fref_%3Dnav_signin&prevRID=VBHFJ50CPKFJ3PGG7RDY&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.assoc_handle=usflex&openid.mode=checkid_setup&openid.ns.pape=http%3A%2F%2Fspecs.openid.net%2Fextensions%2Fpape%2F1.0&prepopulatedLoginId=&failedSignInCount=0&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&pageId=usflex&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0")
driver.find_element_by_xpath("""//*[@id="s2id_ID_form4a8055de_guest_register_sponsor_lookup"]/a/span[2]/b""").click()
driver.find_element_by_xpath("""//*[@id="s2id_autogen1_search"]""").send_keys(v1)
通过使用这个我可以运行它为一个用户在同一时间。但我希望能够注册两个以上的用户多达n个用户在同一时间。因此,多个窗口的问题。
2条答案
按热度按时间vsdwdz231#
您可以创建Web驱动程序的多个示例。然后可以分别处理每个示例。例如,
ecr0jaav2#
这个问题在这一点上有点老了,但我仍然发现它适用于我今天遇到麻烦的事情。
为了实现并行进程,你需要利用多处理。本质上,这允许你为每个函数创建浏览器示例,并允许每个脚本分别锁定到每个浏览器GIL。然后你可以在主代码中启动每个进程,它们都将并行执行。
如果你需要一个如何做到这一点的解释,一个伟大的视频可以找到here