小编kra*_*r65的帖子

如何使用Python获取Selenium中<ul>中的<li>元素列表?

我正在使用Selenium WebDriver使用Python进行UI测试,我想检查以下HTML:

<ul id="myId">
    <li>Something here</li>
    <li>And here</li>
    <li>Even more here</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

从这个无序列表中,我想循环遍历元素并检查其中的文本.我选择了ul-element id,但我找不到任何方法来<li>绕过Selenium中的-children.

有没有人知道如何<li>使用Selenium(在Python中)循环遍历无序列表的-childeren?

html python selenium gui-testing selenium-webdriver

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

如何在ctrl + C下杀死shell脚本打开的所有进程?

我有一些python脚本,我从shell脚本开始,如下所示:

#!/bin/bash
python prog1.py &
python prog2.py &
python prog3.py 
Run Code Online (Sandbox Code Playgroud)

自从我开发以来,我经常想要停止这些过程.我通常按​​ctrl + C这样做,但不幸的是有几个python程序保持(zeromq)套接字打开.这意味着我必须手动找到它们(我使用lsof -i),并使用PID 终止它们.

所以当我点击ctrl + C时,我正在寻找一种从shell自动杀死那些python进程的简单方法.在Stackoverflow上的另一个线程上,我发现了一些应该做我需要的代码.我只是对代码一无所知,以及如何根据我的需要调整代码.

有人帮我这么好吗?

cat >work.py <<'EOF'
import sys, time, signal
signal.signal(signal.SIGINT, signal.SIG_DFL)
for i in range(10):
    time.sleep(1)
    print "Tick from", sys.argv[1]
EOF 
chmod +x work.py

function process {
    python ./work.py $1
}

process one &
wait $!
echo "All done!"
Run Code Online (Sandbox Code Playgroud)

bash

10
推荐指数
1
解决办法
2292
查看次数

使用点或逗号作为分隔符,使用或不使用小数的Python正则表达式?

我正在学习正则表达式,现在我正在尝试匹配一个或多或少代表这个的数字:

[zero or more numbers][possibly a dot or comma][zero or more numbers]
Run Code Online (Sandbox Code Playgroud)

没有点或逗号也没关系.所以它应该匹配以下内容:

1
123
123.
123.4
123.456
.456
123,  # From here it's the same but with commas instead of dot separators
123,4
123,456
,456
Run Code Online (Sandbox Code Playgroud)

但它不应与以下内容相匹配:

0.,1
0a,1
0..1
1.1.2
100,000.99  # I know this and the one below are valid in many languages, but I simply want to reject these
100.000,99
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经提出了[0-9]*[.,][0-9]*,但它似乎没有那么好用:

>>> import re
>>> r = re.compile("[0-9]*[.,][0-9]*")
>>> if r.match('0.1.'): print 'it matches!'
... …
Run Code Online (Sandbox Code Playgroud)

python regex

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

为什么gmail API中的搜索返回的结果与gmail网站中的搜索不同?

我正在使用gmail API搜索来自用户的电子邮件.我创建了以下搜索查询:

ticket after:2015/11/04 AND -from:me AND -in:trash
Run Code Online (Sandbox Code Playgroud)

当我在Gmail的浏览器界面中运行此查询时,我收到11封邮件(正如预期的那样).但是,当我在API中运行相同的查询时,我只收到10条消息.我用来查询gmail API的代码是用Python编写的,如下所示:

searchQuery = 'ticket after:2015/11/04 AND -from:me AND -in:trash'
messagesObj = google.get('/gmail/v1/users/me/messages', data={'q': searchQuery}, token=token).data
print messagesObj.resultSizeEstimate  # 10
Run Code Online (Sandbox Code Playgroud)

我将相同的消息发送到另一个Gmail地址并从该电子邮件地址进行了测试,并且(令我惊讶的是)它确实显示在使用该其他电子邮件地址的API搜索中,因此问题不在于电子邮件本身.

在通过各种测试gmail帐户无休止地通过电子邮件发送后,我认为(但不是100%肯定)浏览器界面搜索功能具有不同的定义"me".似乎在API搜索中它不包括来自具有相同名称的电子邮件地址的电子邮件,而这些结果实际上包含在浏览器搜索的结果中.例如:如果"Pete Kramer"把从电子邮件petekramer@icloud.compete@gmail.com(这都有自己的名称设置为"Pete Kramer"),它会在浏览器中搜索显示,它不会在API搜索显示.

任何人都可以确认这是问题吗?如果是这样,有没有办法绕过这个以获得与浏览器搜索返回相同的结果?或者是否有人知道为什么gmail浏览器搜索的结果与gmail API搜索不同?Al提示是受欢迎的!

python email api gmail gmail-api

10
推荐指数
2
解决办法
1425
查看次数

如何模拟moment.utc()进行单元测试?

我刚开始使用Node,我现在正在编写一些单元测试.对于前几个功能我可以正常工作,但我现在遇到了一个包含moment.utc()在其中的功能.我的函数的简化版本如下所示:

function calculate_x(positions, risk_free_interest){
    let x = 0;
    for (let position of positions) {
        let expiry_in_years = get_expire_in_years(moment.utc());
        if (expiry_in_years > 0){
            let pos_x = tools.get_x(expiry_in_years, risk_free_interest);
            x += pos_x;
        }
    }

    return x;
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用基本节点断言测试lib来测试它:

"use strict";
const assert = require('assert');
let positions = [{this: 'is', a: 'very', large: 'object'}]; 
assert.strictEqual(calculate_x(positions, 1.8), 1.5);
Run Code Online (Sandbox Code Playgroud)

由于运行它的时间(以及结果)总是不同,因此总是会失败.

在Python中,我可以设置模拟类和对象.有没有办法让我可以在Node中解决这个问题而不将moment.utc()作为calculate_x()函数的参数?

unit-testing mocking node.js momentjs

10
推荐指数
1
解决办法
6956
查看次数

如何在LinearLayout类中充气Android View?

我有一小段xml,我将在我的应用程序中的很多地方使用它.出于这个原因,我想将它存储在一个单独的文件中.所以我创建了mywidget.xml,其中包含了我的xml.然后我尝试在mywidget.java中膨胀它,之后我想将它包含在不同的xml文件中,如下所示:

<com.mycom.android.ui.widget.AmountWidget android:layout_width="fill_parent" android:layout_height="wrap_content"></com.mycom.android.ui.widget.AmountWidget>

在我的java文件中,我尝试像这样膨胀初始的xml:

public class AmountWidget extends LinearLayout {
    public AmountWidget(Context context) {
        super(context);
        LinearLayout ll = (LinearLayout) findViewById(R.layout.amount_widget);
        addView(ll);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是使用上面的代码我得到一个错误,说com.mycom.android.ui.widget.AmountWiget类有一个错误.

我的问题:有没有人知道如何给布局充气,以便我可以将它作为另一个xml布局文件中的类使用?

小部件中的xml如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:layout_margin="10dp"
    android:padding="10dp"
    android:background="@layout/border"
    >
    <EditText
        android:id="@+id/payment_amount_major"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:textSize="35sp"
        android:textStyle="bold"
        android:inputType="number"
        android:digits="0,1,2,3,4,5,6,7,8,9"
        android:maxLength="9"  
        android:gravity="right"
        />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

java xml android android-layout

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

如何使用Python中的poppler库从pdf中提取图像?

我有一个pdf,我想用Python提取一些图像.我可以使用poppler-utils库中的pdfimages从Linux命令行轻松提取图像,如下所示:

pdfimages my_file.pdf /tmp/image
Run Code Online (Sandbox Code Playgroud)

接下来我在这里找到了一个Python绑定,并使用通常的方式安装它sudo apt-get install python-poppler.在python解释器中,我现在可以这样做:

>>> import poppler
>>> dir(poppler)
['ACTION_GOTO_DEST', 'ACTION_GOTO_REMOTE', 'ACTION_JAVASCRIPT', 'ACTION_LAUNCH', 'ACTION_MOVIE', 'ACTION_NAMED', 'ACTION_NONE', 'ACTION_OCG_STATE', 'ACTION_RENDITION', 'ACTION_UNKNOWN', 'ACTION_URI', 'ANNOT_3D', 'ANNOT_CARET', 'ANNOT_CIRCLE', 'ANNOT_EXTERNAL_DATA_MARKUP_3D', 'ANNOT_EXTERNAL_DATA_MARKUP_UNKNOWN', 'ANNOT_FILE_ATTACHMENT', 'ANNOT_FLAG_HIDDEN', 'ANNOT_FLAG_INVISIBLE', 'ANNOT_FLAG_LOCKED', 'ANNOT_FLAG_LOCKED_CONTENTS', 'ANNOT_FLAG_NO_ROTATE', 'ANNOT_FLAG_NO_VIEW', 'ANNOT_FLAG_NO_ZOOM', 'ANNOT_FLAG_PRINT', 'ANNOT_FLAG_READ_ONLY', 'ANNOT_FLAG_TOGGLE_NO_VIEW', 'ANNOT_FLAG_UNKNOWN', 'ANNOT_FREE_TEXT', 'ANNOT_FREE_TEXT_QUADDING_CENTERED', 'ANNOT_FREE_TEXT_QUADDING_LEFT_JUSTIFIED', 'ANNOT_FREE_TEXT_QUADDING_RIGHT_JUSTIFIED', 'ANNOT_HIGHLIGHT', 'ANNOT_INK', 'ANNOT_LINE', 'ANNOT_LINK', 'ANNOT_MARKUP_REPLY_TYPE_GROUP', 'ANNOT_MARKUP_REPLY_TYPE_R', 'ANNOT_MOVIE', 'ANNOT_POLYGON', 'ANNOT_POLY_LINE', 'ANNOT_POPUP', 'ANNOT_PRINTER_MARK', 'ANNOT_SCREEN', 'ANNOT_SOUND', 'ANNOT_SQUARE', 'ANNOT_SQUIGGLY', 'ANNOT_STAMP', 'ANNOT_STRIKE_OUT', 'ANNOT_TEXT', 'ANNOT_TEXT_STATE_ACCEPTED', 'ANNOT_TEXT_STATE_CANCELLED', 'ANNOT_TEXT_STATE_COMPLETED', 'ANNOT_TEXT_STATE_MARKED', 'ANNOT_TEXT_STATE_NONE', 'ANNOT_TEXT_STATE_REJECTED', 'ANNOT_TEXT_STATE_UNKNOWN', 'ANNOT_TEXT_STATE_UNMARKED', 'ANNOT_TRAP_NET', 'ANNOT_UNDERLINE', 'ANNOT_UNKNOWN', …
Run Code Online (Sandbox Code Playgroud)

python pdf image poppler image-processing

9
推荐指数
1
解决办法
2283
查看次数

SOAP请求中的TypeError(使用pysimplesoap)

我正在尝试使用PySimpleSoap从荷兰政府土地登记册(WSDL)获取SOAP服务的相关信息.到目前为止,我设法使用以下代码连接并请求有关特定属性的信息:

from pysimplesoap.client import SoapClient
client = SoapClient(wsdl='http://www1.kadaster.nl/1/schemas/kik-inzage/20141101/verzoekTotInformatie-2.1.wsdl', username='xxx', password='xxx', trace=True)

response = client.VerzoekTotInformatie(
    Aanvraag={
        'berichtversie': '4.7',  # Refers to the schema version
        'klantReferentie': klantReferentie,  # A reference we can set ourselves.
        'productAanduiding': '1185',  # a four-digit code referring to whether the response should be in "XML" (1185), "PDF" (1191) or "XML and PDF" (1057).
        'Ingang': {
            'Object': {
                'IMKAD_KadastraleAanduiding': {
                    'gemeente': 'ARNHEM AC',  # municipality
                    'sectie': 'AC',  # section code
                    'perceelnummer': '1234'  # Lot number …
Run Code Online (Sandbox Code Playgroud)

python xml soap wsdl pysimplesoap

9
推荐指数
1
解决办法
1539
查看次数

如何在WTForms RadioField中动态设置默认值?

我正在使用Python Flask框架构建一个网站,我在其中使用WTForms.在一种形式中,我有一个RadioField定义如下:

display = RadioField('display', default='ONE')
Run Code Online (Sandbox Code Playgroud)

这没有定义任何选择,因为我在后面这样做(完全正常):

myForm = MyForm()
myForm.display.choices = [('ONE', 'one'), ('TWO', 'two')]  # This works fine
Run Code Online (Sandbox Code Playgroud)

我现在想在为其设置选项设置RadioField的默认值.所以我尝试从定义中删除默认值(我不确定是否'ONE'总是一个可用的选项)并在创建选项之后创建默认值,就像我上面所做的那样:

myForm.display.default = 'ONE'
Run Code Online (Sandbox Code Playgroud)

不幸的是,这根本没有效果.如果我在Field定义中手动设置它,就像我之前一样,它可以正常工作,但如果我在创建选项后动态设置它,则不行.

有谁知道如何在WTForms中动态设置RadioField的默认值?欢迎所有提示!

python forms default flask wtforms

9
推荐指数
1
解决办法
3224
查看次数

如何使用Python Pillow定义模糊半径?

我正在尝试用Pillow模糊图像,使用ImageFilter如下:

from PIL import ImageFilter
blurred_image = im.filter(ImageFilter.BLUR)
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,除了它有一个对我来说太小的设定半径.我想模糊图像以至于几乎无法识别它.在文档中,我看到默认情况下半径设置为2,但我真的不明白如何将其设置为更大的值?

有没有人知道如何用枕头增加模糊半径?欢迎所有提示!

python image python-imaging-library pillow gaussianblur

9
推荐指数
1
解决办法
5568
查看次数