【发布时间】:2021-07-22 14:04:06
【问题描述】:
有人可以告诉我在这个循环中只运行一次 login() 吗? 第一次它会打开https://mywebsite.com/1234 并要求登录,login() 会这样做,然后它会去下载 .xlsx 文件。 然后它会转到https://mywebsite.com/4567 并且 login() 会尝试再次完成它的工作,但没有必要。所以 il 会设置一个错误为,找不到用户名字段。
有什么方法可以让登录只运行第一次?
请帮忙!
web_link='https://mywebsite.com/'
tt_nr=TT_usrinput.get(0.1, END)
wait = WebDriverWait(self,10)
t=tt_nr.split('\n')
for i in t:
if i != "":
fin=web_link+i
self.maximize_window()
self.delete_all_cookies()
self.get(fin)
login()
WebDriverWait(self, 30).until(EC.element_to_be_clickable((By.ID, 'tab_related_items'))) # click Related Items
self.find_element_by_id('tab_related_items').click()
WebDriverWait(self, 5).until(
EC.element_to_be_clickable((By.XPATH, '//a[@target="_blank" and contains(@href, ".xlsx")]')))
elemsxlsx = self.find_element_by_xpath('//a[@target="_blank" and contains(@href, ".xlsx")]')
elemsxlsx.click()
【问题讨论】:
-
在循环外将一些变量设置为 False。在登录之前,测试该标志。如果为 False,请登录,然后将其设置为 True
-
这很好用!谢谢
标签: python python-3.x selenium-webdriver