我正在使用python这个自动化程序,可以输入文本然后将其提交到网站上。但是,我拥有的文本数量非常大,一次只能输入1行文本,然后必须重新加载页面,我必须先登录网站,所以driver.get()并不多有用,因为该网站不存储我的凭据。因此,我必须手动登录并首先执行我已经完成的操作,但是现在我想同时运行此脚本的多个实例。我相信不可能在同一浏览器实例的不同选项卡中运行相同的脚本。我阅读了有关硒网格的知识,并对它的工作原理有所了解,但我无法实现它。有什么办法可以简化我的流程?
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "localhost:9222")
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH, chrome_options=chrome_options)
def subject():
content = driver.find_element_by_css_selector('a.btn-default')
driver.execute_script("arguments[0].click();", content)
try:
content = driver.find_elements_by_xpath('//span[text()="Okay"]')
driver.execute_script("arguments[0].click();", content[1])
except IndexError:
driver.refresh()
while True:
with open('name_list.txt','r') as f:
for line in f:
wait = WebDriverWait(driver, 10)
search = wait.until(EC.element_to_be_clickable((By.CLASS_NAME, 'class_name')))
search.send_keys(line)
subject()
content = driver.find_element_by_xpath('//button[text()="Submit"]')
driver.execute_script("arguments[0].click();", content)
driver.refresh()
希望我能对您有所帮助。我尝试使用pytest,但是当我在主机上运行并想从同一端口执行上传任务时,我不知道如何实现它。
答案 0 :(得分:0)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="instances" thread-count="2">
<test name="Test">
<classes>
<class name="Parallel"/>
</classes>
</test> <!-- Test -->
</suite> <!-
This is XML file