我正在使用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?
我有一些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) 我正在学习正则表达式,现在我正在尝试匹配一个或多或少代表这个的数字:
[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) 我正在使用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.com
到pete@gmail.com
(这都有自己的名称设置为"Pete Kramer"
),它会在浏览器中搜索显示,它不会在API搜索显示.
任何人都可以确认这是问题吗?如果是这样,有没有办法绕过这个以获得与浏览器搜索返回相同的结果?或者是否有人知道为什么gmail浏览器搜索的结果与gmail API搜索不同?Al提示是受欢迎的!
我刚开始使用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()
函数的参数?
我有一小段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) 我有一个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) 我正在尝试使用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 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的默认值?欢迎所有提示!
我正在尝试用Pillow模糊图像,使用ImageFilter如下:
from PIL import ImageFilter
blurred_image = im.filter(ImageFilter.BLUR)
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,除了它有一个对我来说太小的设定半径.我想模糊图像以至于几乎无法识别它.在文档中,我看到默认情况下半径设置为2,但我真的不明白如何将其设置为更大的值?
有没有人知道如何用枕头增加模糊半径?欢迎所有提示!
python ×7
image ×2
xml ×2
android ×1
api ×1
bash ×1
default ×1
email ×1
flask ×1
forms ×1
gaussianblur ×1
gmail ×1
gmail-api ×1
gui-testing ×1
html ×1
java ×1
mocking ×1
momentjs ×1
node.js ×1
pdf ×1
pillow ×1
poppler ×1
pysimplesoap ×1
regex ×1
selenium ×1
soap ×1
unit-testing ×1
wsdl ×1
wtforms ×1