小编use*_*679的帖子

Python:在类中创建抽象静态属性

我真正想做的是这样的事情:

class X(metaclass=abc.ABCMeta):
    @abc.abstractAttribute # this doesn't exist
    var = [1,2]

class Y(X):
    var = X.var + [3,4]
Run Code Online (Sandbox Code Playgroud)

这将强制 的任何子类X实现静态var属性。

但是没有办法将静态属性定义为抽象的。

尝试使用@abc.abstractmethod,结合属性,我可以接近:

class X(metaclass=abc.ABCMeta):
    @property
    @abc.abstractmethod
    def var(self):
        return [1,2]

class Y(X):
    @property
    def var(self):
        return super().var + [3,4]
Run Code Online (Sandbox Code Playgroud)

y=Y(); y.var给人[1,2,3,4]的期望。

但目标是创建静态属性/属性,而不是实例属性/属性。

创建为@staticmethod 时:

class X(metaclass=abc.ABCMeta):
    @property
    @staticmethod
    @abc.abstractmethod
    def var():
        return [1,2]

class Y(X):
    @property
    @staticmethod
    def var():
        return X.var + [3,4]
Run Code Online (Sandbox Code Playgroud)

...然后y=Y(); y.varTypeError 'staticmethod' object is not callable …

python static attributes abstract-class properties

11
推荐指数
3
解决办法
3296
查看次数

Selenium获得当前隐式等待的值

我意识到Selenium有隐式等待的默认值,但是如果我改变它,我该如何得到这个值?例如:

driver.implicitly_wait( 13 );
Run Code Online (Sandbox Code Playgroud)

我以后如何从驱动程序中获取13值?

selenium webdriver

9
推荐指数
2
解决办法
4812
查看次数

如何检测Selenium何时加载浏览器的错误页面

是否有通用的方法来检测selenium浏览器何时打开错误页面?例如,禁用您的互联网连接并执行此操作

driver.get("http://google.com")
Run Code Online (Sandbox Code Playgroud)

在Firefox中,Selenium将加载"再试一次"错误页面,其中包含"Firefox无法与www.google.com上的服务器建立连接"等文本.Selenium不会抛出任何错误.

是否有与浏览器无关的方法来检测这些案例?对于firefox(python),我可以做到

if "errorPageContainer" in [ elem.get_attribute("id") for elem in driver.find_elements_by_css_selector("body > div") ]
Run Code Online (Sandbox Code Playgroud)

但是(1)这看似计算过度(见下面的下一点)和(2)我必须为每个浏览器创建自定义代码.

如果您禁用互联网并使用htmlunit作为浏览器,您将获得一个包含以下html的页面

<html>
    <head></head>
    <body>Unknown host</body>
</html>
Run Code Online (Sandbox Code Playgroud)

如何在不做的情况下检测到这一点

if driver.find_element_by_css_selector("body").text == "Unknown host"
Run Code Online (Sandbox Code Playgroud)

看起来这将是检查每一个页面加载因为通常会是一吨在正文的非常昂贵的.

如果您还知道检测负载问题类型的方法,例如没有互联网连接,无法访问的主机等,则可以获得奖励积分.

firefox selenium htmlunit

7
推荐指数
1
解决办法
9237
查看次数

Geany 相当于 Notepad++ 中的 ALT + 5(最小​​化块)

在 Notepad++ 中,我可以使用热键Alt+5最小化所有第一个子块(带有 +/- 的小框)。Geany有办法做到这一点吗?

如果没有,是否有一个插件可以让我创建此功能?

notepad++ folding geany

5
推荐指数
1
解决办法
2875
查看次数