我如何通过使用硒行web表单迭代?



请我有一个web表单,我使用硒脚本自动填写数据一行。每次我运行add_event_button,创建新行,然后自动填充date_field备注字段。一行中的所有字段都具有相似的ID属性。唯一的区别是当你点击变量add_event_button,新行所有字段的ID增量为1。

下面是我所做的:


from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support.ui import Select
import time
import pandas as pd
from time import sleep
add_event_button = wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="tab-voyage-log-12780"]/div[2]/a[2]'))).click()
time.sleep(2)
date_field = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#WGItem02_voyage_log-25_4')))
date_field.send_keys(date_time_row[1]) 

location_field = Select(driver.find_element(By.ID, 'WGItem09_voyage_log-2_4'))
location_field.select_by_index(8)

event_field = Select(driver.find_element(By.ID, 'WGItem04_voyage_log-2_4'))
event_field.select_by_index(4)

subevent_field = Select(driver.find_element(By.ID, 'WGItem05_voyage_log-2_4'))
subevent_field.select_by_index(3)
remarks_field = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#WGItem06_voyage_log-2_4')))
remarks_field.send_keys(remarks_data_col[1])

我如何遍历上面的代码块以运行最多20次?例如;WGItem05_voyage_log-2_4运行到WGItem05_voyage_log-20_4,remarks_field.send_keys(remarks_data_col[1])运行到remarks_field.send_keys(remarks_data_col[20])

for i in range(2,21):
remarks_field = wait.until(EC.element_to_be_clickable((By.XPATH, f"//*[@id='WGItem06_voyage_log-{i}_4']")))
remarks_field.send_keys(remarks_data_col[i-1])

您的意思是像这样循环并使用f string访问该xpath元素吗?

最新更新