Selenium New window 而不是 New Instance? CSV 的下一行?

Selenium New window instead of New Instance? Next row on CSV?

我试图将多个条目提交到 login/password 后面的网络表单中。数据来自 CSV。

在 Selenium (python) 中,当我的代码完成时它会循环返回,打开一个全新的 Chrome 具有新配置文件的实例,然后在进入下一行之前必须再次登录CSV 的。

我不想将我的密码存储在 python file/CSV 中,也不想通过在一分钟内登录 10-20 次来创建看起来很奇怪的流量。

有任何建议的代码可以在 Chrome 的同一个实例中打开一个新的 window/tab 并在不启动新实例的情况下将数据条目移动到 CSV 中的下一行吗?

from selenium import webdriver
import time
from selenium.webdriver.common.by import By
import csv




PATH = "/usr/local/bin/chromedriver"
url = "https://123.com"



with open('test.csv', 'r') as csv_file:

    csv_reader = csv.reader(csv_file)

    for line in csv_reader:

        web = webdriver.Chrome()
        web.get(url)

        time.sleep(1)

        username = web.find_element(By.XPATH,"/html/body/app-root/div/app-login/mat-card/mat-card-content/form/div[1]/mat-form-field/div/div[1]/div/input")
        username.send_keys('joe@smith.com')
        
        companyaddressnum = web.find_element(By.XPATH,"/html/body/app-root/div/form/div[2]/mat-card[2]/mat-card-content/div[3]/mat-form-field[1]/div/div[1]/div/input")
        companyaddressnum.send_keys(line[2])

您在循环中调用 web = webdriver.Chrome(),这就是它重复多次的原因。

检查此代码:

from selenium import webdriver
import time
from selenium.webdriver.common.by import By
import csv

PATH = "/usr/local/bin/chromedriver"
url = "https://123.com"
web = webdriver.Chrome()

with open('test.csv', 'r') as csv_file:
    csv_reader = csv.reader(csv_file)

    for line in csv_reader:
        
        web.get(url)

        time.sleep(1)

        username = web.find_element(By.XPATH,
                                    "/html/body/app-root/div/app-login/mat-card/mat-card-content/form/div[1]/mat-form-field/div/div[1]/div/input")
        username.send_keys('joe@smith.com')

        companyaddressnum = web.find_element(By.XPATH,
                                             "/html/body/app-root/div/form/div[2]/mat-card[2]/mat-card-content/div[3]/mat-form-field[1]/div/div[1]/div/input")
        companyaddressnum.send_keys(line[2])