下面是我的python脚本中的代码片段,它读取excel文件并将行中的单元格分配给变量,然后用于在浏览器中键入字段.它在大多数情况下都很有效.我想做的是在浏览器加载页面后设置某种循环来执行以下操作:
通过某个ID找到元素.如果失败,请等待5秒钟然后再试一次.如果成功继续使用脚本的其余部分.现在对我来说很容易,这是我第一次真正的尝试.我试图嵌套try/except语句,但这很快就变得非常混乱.
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time
import xlrd
workbook = xlrd.open_workbook("my_excel_file.xlsx")
worksheet = workbook.sheet_by_name('Sheet1')
x = 0
for current_row in range(worksheet.nrows):
try:
cmt = worksheet.row(current_row)[2].value
browser = webdriver.Firefox() # Get local session of firefox
browser.get("http://www.somewebsite.com") # Load page
time.sleep(5)
#this timer is the issue, if the field takes 6 seconds to be ready, script fails
comment = browser.find_element_by_id("slow_comment_box") # Find the comment box
comment.send_keys(str(cmt) + Keys.RETURN)
x += 1
except: …Run Code Online (Sandbox Code Playgroud)