从文本中读取并为 chrome 创建随机配置文件不起作用

Reading from text and create random profile for chrome not working

为什么它在打印随机 chrome 配置文件时只启动相同的 chrome 配置文件?

我有一个文本文件:

'--profile-directory=Person 1
'--profile-directory=Person 2

它读取随机行并将其加载到 Chrome。为什么它不起作用?

我已经包含了示例 1,这是我遇到的问题:

示例 1:

import random
import random
lines = open('C:\Users\Hoxton\Pictures\1\ad.txt').read().splitlines()
myline =random.choice(lines)
print(myline)


Profiles = []

for x in (myline):
    indexes = [index for index in range(len(myline))]
    shuffle(indexes)
    dataDir = "--user-data-dir=C:\Users\Hoxton\AppData\Local\Google\Chrome\User Data"
    chrome_options1 = webdriver.ChromeOptions()
    chrome_options1.add_argument(dataDir)
    chrome_options1.add_argument(x)
    driver = webdriver.Chrome(chrome_options=chrome_options1)
    driver.get('https://www.google.com')

需要注意的是,下面的操作是完美的。
示例 2

foo = ['--profile-directory=Person 1', '--profile-directory=Person 2', '--profile-directory=Person 3', '--profile-directory=Person 4', '--profile-directory=Person 5']
from random import randrange
random_index = randrange(0,len(foo))
print(foo[random_index])

Profiles = []

for x in [foo[random_index]]:
    indexes = [index for index in range(len(foo[random_index]))]
    shuffle(indexes)
    dataDir = "--user-data-dir=C:\Users\Hoxton\AppData\Local\Google\Chrome\User Data"
    chrome_options1 = webdriver.ChromeOptions()
    chrome_options1.add_argument(dataDir)
    chrome_options1.add_argument(x)
    driver = webdriver.Chrome(chrome_options=chrome_options1)
    driver.get('https://www.google.com')

谁能帮我找到一个可以从记事本阅读的例子?我无法在第一个示例中看到我在做什么。

在示例 1 中,您正在迭代一个字符串。在示例 2 中,您正在遍历列表。

试试这个可以证明问题的例子:

import random
lines = ['--profile-directory=Person 1', '--profile-directory=Person 2', '--profile-directory=Person 3', '--profile-directory=Person 4', '--profile-directory=Person 5']
# This returns a string.
myline = random.choice(lines)

# iterate over a string (x = string char).
for x in (myline):
    print(x)

# iterate over a tuple (x = tuple item).
for x in (myline,):
    print(x)

上面使用了一个字符串和一个元组,尽管元组类似于示例 2 中使用的列表,使用 [] 包围 foo[random_index] 成为列表 [foo[random_index]]

编辑:

根据评论的要求,一个可能的解决方案,因为我没有实际测试的环境。

import random
from selenium import webdriver

with open('C:\Users\Hoxton\Pictures\1\ad.txt') as r:
    lines = r.readlines()

myline = random.choice(lines).strip()
# Add string to a list.
if type(myline) is str:
    myline = [myline]
# Display myline
print(repr(myline))

Profiles = [] # obsolete?
dataDir = "--user-data-dir=C:\Users\Hoxton\AppData\Local\Google\Chrome\User Data"

for x in myline:
    indexes = [index for index in range(len(myline))]
    random.shuffle(indexes)
    chrome_options1 = webdriver.ChromeOptions()
    chrome_options1.add_argument(dataDir)
    chrome_options1.add_argument(x)
    driver = webdriver.Chrome(chrome_options=chrome_options1)
    driver.get('https://www.google.com')

编辑:为 myline 添加了类型 str 检查,以防您出于某种原因从随机字符串更改为序列序列类型。