小编Jac*_*din的帖子

保持Firefox配置文件在多个Selenium测试中保持不变,而无需指定配置文件

试图实现:

  • 整个测试中同样的firefox配置文件

问题:

  • 测试分布在30个不同的文件中,实例化一个selenium对象,从而创建一个firefox配置文件,在第一次测试中不会持续到下面的测试,因为一旦脚本结束,对象就会死掉IIRC

  • 无法指定配置文件,因为我正在编写一个应该在不同机器上运行的测试套件

可能的解决方案:

  • 在一些公共代码中创建一个selenium对象,在整个测试过程中保留在内存中.我通过生成一个新的python进程并等待它结束来运行每个测试.我不确定如何将内存中的对象发送到新的python对象.

任何帮助表示赞赏,谢谢.

编辑:只是想到而不是生成一个子python进程来运行测试,我只是实例化selenium IDE生成的测试类,在所有30个测试中删除setUp和tearDown方法,在开始时实例化一个selenium对象,然后传递说selenium对象实例化的每个测试.

python selenium

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

子类化C模块中定义的类型时忽略的方法

我正在将C模块中定义的类型子类化为别名的一些属性和方法,以便我的脚本在不同的上下文中工作.

如何让它工作,我必须手动调整我班级的字典?如果我没有DistanceTo在dictionnary中添加引用,我会得到Point3d has no attribute named DistanceTo.

class Point3d(App.Base.Vector):
      def __new__(cls, x, y, z):
          obj = super(Point3d, cls).__new__(cls)
          obj.x, obj.y, obj.z = x, y, z
          obj.__dict__.update({
               'X':property(lambda self: self.x),
               'Y':property(lambda self: self.y),
               'Z':property(lambda self: self.z),
               'DistanceTo':lambda self, p: self.distanceToPoint(p)})
          return obj
      def DistanceTo(self, p): return self.distanceToPoint(p)
Run Code Online (Sandbox Code Playgroud)

我在想,一旦__new__返回了一个实例,我仍然可以用方法和属性填充它.任何人都可以对此有所了解吗?

编辑:我导入的模块是FreeCAD.那里定义了C基类型.然后Vector是衍生形式这个定义在这里

编辑2:我也尝试了以下内容:

class Point3d(App.Base.Vector):
      def __new__(cls, x, y, z):
          obj = super(Point3d, cls).__new__(cls)
          obj.x, obj.y, obj.z = x, y, z
          obj.__dict__.update({
               'X': x, 'Y': …
Run Code Online (Sandbox Code Playgroud)

python python-c-api subclassing freecad

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

在IronPython 2.7和Python3.5中压缩

我有一个脚本,我想在Python3.5和IronPython2.7中执行.

该脚本最初是用Python3编写的,所以我有一些类似于下面代码的嵌套循环:

myIter0 = iter(['foo','foo','bar','foo','spam','spam'])
myIter1 = iter(['foo','bar','spam','foo','spam','bar'])
myIter2 = iter([1,2,3,4,5,6])

for a in myIter0:
    for b, c in zip(myIter1, myIter2):
        if a + b == 'foobar':
            print(c)
            break 
Run Code Online (Sandbox Code Playgroud)

现在,如果我在IronPython2.7中运行它,我得不到相同的结果,因为zip返回一个列表而不是迭代器.

为了避免这个问题,我想我会这样做:

import sys
if sys.version_info.major == 2:
    from itertools import izip as _zip
else:
    _zip = zip

myIter0 = iter(['foo','foo','bar','foo','spam','spam'])
myIter1 = iter(['foo','bar','spam','foo','spam','bar'])
myIter2 = iter([1,2,3,4,5,6])

for a in myIter0:
    for b, c in _zip(myIter1, myIter2):
        if a + b == 'foobar':
            print(c)
            break 
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点?

python ironpython

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

file()[function.file]:php_network_getaddresses:getaddrinfo failed:名称解析暂时失败

当我从文件(" http://www.otherdomain.com ")获取内容时,我收到以下错误.

file() [function.file]: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
Run Code Online (Sandbox Code Playgroud)

域服务器是linux.

如何解决这个问题?

php chat

4
推荐指数
2
解决办法
3万
查看次数

EasyPHP上的激活卷曲

在php.ini中取消注释curl-modul后,我收到以下错误:

PHP警告:PHP启动:无法加载动态库'C:\ Program Files(x86)\ EasyPHP-Devserver-16.1\eds-binaries\php\php5617x160120145639\ext\php_curl.dll' - Das angegebene Modul wurde nicht gefunden. r \n在第0行的Unknown中

php apache curl easyphp

4
推荐指数
3
解决办法
2万
查看次数

scipy求根方法

我正在编写一个具有数学函数作为属性的类,例如f

f是:

  • 定义在实数段上 [-w;+w]
  • 正数且以上界为实数 H
  • 偶数(对于 [-w;+w] 中的所有 x,f(x)=f(-x))且 f(w)=f(-w)=0
  • 在 [-w;+w] 上可微,其导数在 [-w;0] 上为正且连续

我的班级看起来像:

from scipy.misc import derivative
from scipy.integrate import quad
from math import cosh, sqrt

class Function(object):

    w = 1.
    PRECISION = 1e-6    

    def f(self, x):
        '''This is an example but f could be 
           any math function matching requirments above.
        '''
        return 0.5+1.07432*(1-cosh(x/1.07432)) 

    def deriv_f(self, x):
        return derivative(self.f, x, self.PRECISION)

    def x_to_arc_length(self, x):
        def func(x): 
            return sqrt(1+self.deriv_f(x)**2)
        return quad(func, -self.w, x)[0]

    def …
Run Code Online (Sandbox Code Playgroud)

python scipy

4
推荐指数
1
解决办法
1589
查看次数

如何找出列中唯一值的数量以及数据框中唯一值的数量?

根据以下数据集,我不希望获得唯一值的数量和唯一值的数量。

我的数据集:

Account_Type
Gold
Gold
Platinum
Gold
Run Code Online (Sandbox Code Playgroud)

输出 :

no of unique values : 2
unique values : [Gold,Platinum]
Gold : 3
Platinum :1 
Run Code Online (Sandbox Code Playgroud)

python pandas

4
推荐指数
1
解决办法
2万
查看次数

在Python中匹配字符串中的精确短语

我正在尝试确定子字符串是否在字符串中.我遇到的问题是,如果在字符串中的另一个单词中找到子字符串,我不希望我的函数返回True.

例如:如果子串是; "紫牛"和弦是; "紫色奶牛是最好的宠物." 这应该返回False.由于牛在子串中不是复数.

如果子串是; "紫牛"和弦是; "你的紫牛踩踏了我的篱笆!" 会返回True

我的代码看起来像这样:

def is_phrase_in(phrase, text):
    phrase = phrase.lower()
    text = text.lower()

    return phrase in text


text = "Purple cows make the best pets!"
phrase = "Purple cow"
print(is_phrase_in(phrase, text)
Run Code Online (Sandbox Code Playgroud)

在我的实际代码中,我在"text"中清除了不必要的标点符号和空格,然后将它与短语进行比较,否则这是相同的.我已经尝试过使用re.search了,但是我还不太了解正则表达式,并且只从我的示例中获得了与它们相同的功能.

感谢您的任何帮助,您可以提供!

python string match python-3.x

3
推荐指数
2
解决办法
2992
查看次数

scipy多项式pmf返回值nan

我正在尝试使用(python)中的multinominal.pmf函数scipy.stats

当我在输入中所有概率均大于零的情况下使用此函数时,它可以正常工作。问题是当我要使用其中一个概率为零的函数时。

以下示例说明了我的意思:

In [18]: multinomial.pmf([3, 3, 0], 6, [1/3.0, 1/3.0, 1/3.0])
Out[18]: 0.027434842249657095

In [19]: multinomial.pmf([3, 3, 0], 6, [2/3.0, 1/3.0, 0])
Out[19]: nan
Run Code Online (Sandbox Code Playgroud)

可以看出,在第一次所有概率均大于0的情况下,使用该函数没有问题。但是,当我将其中一个概率更改为零时,该函数返回nan,即使通过该函数也应返回0.21948

当其中一个概率为零时,是否有一种方法(在python中)来计算pmf?可以通过其他方式处理该问题,或者解决该功能。

附加信息

我在示例中使用Matlab中的mnpdf函数计算了示例中的函数应返回的值。但是,由于我的其余代码在python中,所以我更喜欢找到一种在python中进行计算的方法。

python matlab scipy multinomial

3
推荐指数
1
解决办法
232
查看次数

Numba `cache=True` 没有效果

我编写下面的代码来测试 numba 的缓存功能

import numba
import numpy as np
import time
@numba.njit(cache=True)
def sum2d(arr):
    M, N = arr.shape
    result = 0.0
    for i in range(M):
        for j in range(N):
            result += arr[i,j]
    return result
a=np.random.random((1000,100))
print(time.time())
sum2d(a)
print(time.time())
print(time.time())
sum2d(a)
print(time.time())
Run Code Online (Sandbox Code Playgroud)

虽然pycache文件夹中生成了一些缓存文件,但时间总是相同的

1576855294.8787484
1576855295.5378428
1576855295.5378428
1576855295.5388253
Run Code Online (Sandbox Code Playgroud)

无论我运行这个脚本多少次,这意味着第一次运行sum2d需要更多的时间来编译。那么pycache文件夹中的缓存文件有什么用呢?

python numba

3
推荐指数
1
解决办法
4885
查看次数