我已经看到了这个问题(这不是重复的):Python在函数参数中显示星号
在python-3.x中你可以*为函数参数添加一个裸,这意味着(引自docs):
"*"或"*identifier"之后的参数是仅关键字参数,并且只能传递使用的关键字参数.
好的,我已经定义了一个函数:
>>> def f(a, b, *, c=1, d=2, e=3):
... print('Hello, world!')
...
Run Code Online (Sandbox Code Playgroud)
我可以通过c,d而e变量值只能通过指定关键字:
>>> f(1, 2, 10, 20, 30)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: f() takes 2 positional arguments but 5 were given
>>> f(1, 2, c=10, d=20, e=30)
Hello, world!
Run Code Online (Sandbox Code Playgroud)
问题是:
一些"真实世界"的例子会有很大帮助.提前致谢.
我是Django的新手.我正在尝试运行应用程序,我需要向管理员添加新用户.服务器正在运行.当我输入信息冷杉新用户并点击"保存"时,我收到以下错误.我正在使用django-trunk.
MessageFailure at /admin/auth/user/add/
You cannot add messages without installing
django.contrib.messages.middleware.MessageMiddleware
Request Method: POST
Request URL: http://localhost:8000/admin/auth/user/add/
Django Version: 1.6.dev20130403090717
Exception Type: MessageFailure
Exception Value: You cannot add messages without installing django.contrib.messages.middleware.MessageMiddleware
Run Code Online (Sandbox Code Playgroud)
关于可能发生什么的任何想法?
我正在尝试使用WebDriver谷歌测试自动化会议谈话和ChromeDriver "性能日志"文档页面来遵循网络性能测试中提出的想法,以获取我想要提交到网页测试以便稍后进行性能分析的跟踪数据.
如何使用python selenium绑定检索性能日志?
我试图log_types在驱动程序实例中打印出来
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://stackoverflow.com')
print driver.log_types
driver.close()
Run Code Online (Sandbox Code Playgroud)
但只有
[u'browser', u'driver']
Run Code Online (Sandbox Code Playgroud)
而且我没有看到相关的命令行开关.
python selenium google-chrome selenium-chromedriver selenium-webdriver
考虑以下视图模型:
$scope.data = {};
$scope.data.person = {};
$scope.data.person.firstname = "";
$scope.data.person.lastname = "";
$scope.data.person.username = "";
Run Code Online (Sandbox Code Playgroud)
以及以下元素指令:
<custom-form-directive ng-model="data.person"></custom-form-directive>
Run Code Online (Sandbox Code Playgroud)
其中包含三个输入标签来显示数据.如何使用量角器通过定位填充输入字段ng-model="data.person"?
我们有一个菜单表示为一个ul->li列表(简化):
<ul class="dropdown-menu" role="menu">
<li ng-repeat="filterItem in filterCtrl.filterPanelCfg track by filterItem.name"
ng-class="{'divider': filterItem.isDivider}" class="ng-scope">
<a href="" class="ng-binding"> Menu Item 1</a>
</li>
...
<li ng-repeat="filterItem in filterCtrl.filterPanelCfg track by filterItem.name"
ng-class="{'divider': filterItem.isDivider}" class="ng-scope">
<a href="" class="ng-binding"> Menu Item 2</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
在位置N的某处,有一个分隔符,可以通过评估 filterItem.isDivider或通过检查a链接的文本来识别(在分隔符的情况下,它是空的).
现在,目标是获取位于分隔符之前的所有菜单项.你会如何解决这个问题?
我目前的方法相当通用 - 扩展ElementArrayFinder和添加takewhile()功能(受Python的启发itertools.takewhile()).以下是我实现它的方法(基于filter()):
protractor.ElementArrayFinder.prototype.takewhile = function(whileFn) {
var self = this;
var getWebElements = function() {
return self.getWebElements().then(function(parentWebElements) {
var list = []; …Run Code Online (Sandbox Code Playgroud) 我尝试使用输入中的当前选定文本,window.getSelection()但我总是得到一个空字符串:
expect(browser.executeScript("return window.getSelection().toString();")).toEqual("test");
Run Code Online (Sandbox Code Playgroud)
结果成:
Expected '' to equal 'test'.
Run Code Online (Sandbox Code Playgroud)
使用angularjs.org作为目标站点的完整可重复测试:
describe("My test", function () {
beforeEach(function () {
browser.get("https://angularjs.org/");
});
it("should select text in an input", function () {
var query = element(by.css("input.search-query"));
query.sendKeys("test");
query.sendKeys(protractor.Key.chord(protractor.Key.COMMAND, "a"));
expect(browser.executeScript("return window.getSelection().toString();")).toEqual("test");
});
});
Run Code Online (Sandbox Code Playgroud)
请注意,我实际上看到输入的文本是使用COMMAND +"a"选择的.
我究竟做错了什么?
使用量角器2.5.1,firefox 41.
javascript selenium end-to-end selenium-webdriver protractor
根据我的理解,对象上有一个parentElementArrayFinder属性ElementFinder可以返回当前的父元素:
var myElement = $(".myclass");
var parentElement = myElement.parentElementArrayFinder;
Run Code Online (Sandbox Code Playgroud)
但是,它没有记录为Protractor的公共API的一部分.是parentElementArrayFinder一个可靠而稳定的方法来定位父元素,并始终返回相同的元素myElement.element(by.xpath(".."))?
我目前正在使用Selenium来运行Chrome实例以测试网页.每次我的脚本运行时,都会启动一个干净的Chrome实例(清除扩展名,书签,浏览历史记录等).我想知道是否可以使用Chrome扩展程序运行我的脚本.我已经尝试过搜索Python示例,但是当我用Google搜索时没有出现任何问题.
我正在尝试用BeautifulSoup创建一个表刮.我写了这个Python代码:
import urllib2
from bs4 import BeautifulSoup
url = "http://dofollow.netsons.org/table1.htm" # change to whatever your url is
page = urllib2.urlopen(url).read()
soup = BeautifulSoup(page)
for i in soup.find_all('form'):
print i.attrs['class']
Run Code Online (Sandbox Code Playgroud)
我需要刮Nome,Cognome,Email.
问题:
BeautifulSoup为CSS选择器提供非常有限的支持.例如,唯一支持的伪类是nth-of-type,它只能接受数值 - 参数喜欢even或odd不允许.
是否可以扩展BeautifulSoupCSS选择器或让它在lxml.cssselect内部用作底层CSS选择机制?
我们来看一个示例问题/用例.在以下HTML中仅查找偶数行:
<table>
<tr>
<td>1</td>
<tr>
<td>2</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
在lxml.html和中lxml.cssselect,很容易做到:nth-of-type(even):
from lxml.html import fromstring
from lxml.cssselect import CSSSelector
tree = fromstring(data)
sel = CSSSelector('tr:nth-of-type(even)')
print [e.text_content().strip() for e in sel(tree)]
Run Code Online (Sandbox Code Playgroud)
但是,在BeautifulSoup:
print(soup.select("tr:nth-of-type(even)"))
Run Code Online (Sandbox Code Playgroud)
会抛出错误:
NotImplementedError:nth-of-type伪类目前仅支持数值.
请注意,我们可以解决此问题.find_all():
print([row.get_text(strip=True) for index, row in enumerate(soup.find_all("tr"), start=1) if …Run Code Online (Sandbox Code Playgroud) python ×5
selenium ×5
javascript ×4
protractor ×4
html-parsing ×2
angularjs ×1
arguments ×1
django ×1
django-admin ×1
end-to-end ×1
function ×1
html ×1
iteration ×1
lxml.html ×1
python-3.x ×1
web-scraping ×1