使用profile = Selenium::WebDriver::Firefox::Profile.new
profile['permissions.default.image'] = 2
browser = Watir::Browser.new(:firefox, :profile => profile)
browser.goto url
和python 3
我正在尝试创建一个文件对话框,让用户可以选择现有目录(tkinter
)。
当他们选择exists=True
时,我想检查该目录是否也可读,我可以获得文件锁定。由于我的程序的其余部分将依赖于对路径的读取访问,并且它的进程将花费很长时间。
乳清他们选择choose
我希望对话框关闭。
如果目录不是cancel
,我希望文件对话框显示readable
消息。单击askretry
将返回以选择文件。点击Retry
即可关闭对话框。
在我的第一次尝试中,我是Cancel
的新手,我创建了这个:
tkinter
虽然不完美。它不会让你import os
from tkinter import filedialog
from tkinter import messagebox
class OpenDialog(object):
def __init__(self):
self.directory_path = None
self.dialog_title ="Photos Directory Selection"
def ask_for_directory(self):
while not self.directory_path:
self.directory_path = filedialog.askdirectory(mustexist=True, title=self.dialog_title)
if not os.access(os.path.dirname(self.directory_path), os.F_OK):
self.directory_path = None
if not messagebox.askretrycancel(title=self.dialog_title, message="Can't read directory."):
break
文件对话。
但是,唉,我以为我可能会潜入文件对话本身......
我只是看不清楚如何干净地挂入FileDialogue类来干净地显示cancel
对话并重复该过程。
如果有什么我遗失的请分享: - )
答案 0 :(得分:-1)
这样可行,但有人看到递归调用的问题吗?
def ask_for_directory(self):
self.directory_path = filedialog.askdirectory(mustexist=True, title=self.dialog_title)
if self.directory_path:
# Check that we have access to the path
if not os.access(self.directory_path, os.R_OK):
# If we don't have access
if messagebox.askretrycancel(title=self.dialog_title, message="Can't read directory."):
self.ask_for_directory()
编辑:
这是我的例子,但已经纠正工作......
def ask_for_directory(self):
while not self.directory_path:
self.directory_path = filedialog.askdirectory(mustexist=True, title=self.dialog_title)
if self.directory_path:
if not os.access(self.directory_path, os.R_OK):
self.directory_path = None
if not messagebox.askretrycancel(title=self.dialog_title, message="Can't read directory."):
break
else:
break