Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python—;使用chrome webdriver打开多个可同时自动交互的选项卡_Python_Selenium_Selenium Webdriver_Tabs - Fatal编程技术网

Python—;使用chrome webdriver打开多个可同时自动交互的选项卡

Python—;使用chrome webdriver打开多个可同时自动交互的选项卡,python,selenium,selenium-webdriver,tabs,Python,Selenium,Selenium Webdriver,Tabs,我正在使用Python编写Kahoot Floader代码,需要同时打开用户指定数量的选项卡(bot数量)。我还希望能够同时或在很短的时间内与所有这些选项卡交互。这是我的密码: import time, selenium, Typewriter, random from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from sele

我正在使用Python编写Kahoot Floader代码,需要同时打开用户指定数量的选项卡(bot数量)。我还希望能够同时或在很短的时间内与所有这些选项卡交互。这是我的密码:

import time, selenium, Typewriter, random
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
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.common.exceptions import NoSuchElementException

Typewriter.typewriter("KahootBummer Version 1.0" "\n")
botamount = input("How Many Bots Do You Want?" "\n")
botamount = int(botamount)
pin = input("Please Enter Game Pin" "\n")
pin = int(pin)
name = input("Please Enter A Name" "\n")

for i in range(botamount):

    namenum = random.randint(0,2347324)
    namenum = str(namenum)
    name = str(name) + namenum

    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument("-incognito")
    chrome_options.add_argument("--headless")
    driver = webdriver.Chrome(executable_path="C:/Users/boomb/Desktop/Finished Python 
    Programs/chromedriver.exe",options=chrome_options)
    driver.get("https://kahoot.it/")
    time.sleep(2)

    pinenter = driver.find_element_by_xpath("//input[@id='game-input']")
    pinenter.click()
    pinenter.send_keys(pin)

    entergame = driver.find_element_by_xpath("//button[contains(text(),'Enter')]")
    entergame.click()
    time.sleep(2)

    nameenter = driver.find_element_by_xpath("//input[@id='nickname']")
    nameenter.click()
    nameenter.send_keys(name)

    okaygo = driver.find_element_by_xpath("//button[contains(text(),'OK, go!')]")
    okaygo.click()

基本上,我希望它在短时间内运行这个循环一定次数,而不必等待每个循环完成。另外,我是新的编码,所以很抱歉混乱的代码。谢谢大家!

基本上,据我所知,这是不可能的,因为webdriver执行的操作不是线程安全的。您可以尝试引入多线程,但它可能无法正常运行。为什么你只需要使用一个chromedriver?嘿,谢谢你的回答,如果我想使用100个选项卡(100个机器人),我会需要100个chromedriver实例吗?如果你想同时可靠地控制所有这些选项卡,那么是的,我想是的。我会怎么做,对python来说非常陌生,而且只使用了一天selenium。有这方面的教程吗?真的不知道如何在我当前的代码中搜索或实现它,大多数制作这种泛洪机器人的人都使用Node.js,但我还没有开始学习它。所以,除了你希望它执行得更快之外,你当前的代码有什么问题?看起来您可能缺少打开新选项卡的部分,并导致每个循环在新选项卡中执行?但是现在看起来,一个新的chromedriver应该初始化每个循环,尽管我希望它会在一个新窗口中,而不是在一个选项卡中。