网站有顶级菜单,有6个链接.我可以得到这样的链接列表:
links = browser.find_elements_by_css_selector(MENU_LINKS_CSS_SELECTOR)
Run Code Online (Sandbox Code Playgroud)
在此之后,我需要逐个单击此链接.如果我这样做:
for link in links:
link.click()
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:selenium.common.exceptions.StaleElementReferenceException: Message: u'Element not found in the cache - perhaps the page has changed since it was looked up'.据我所知,这个错误引起了因为WebElement实例之间的连接和网页的DOM在重新加载页面后被破坏(点击链接).
在这里,我应该注意到所有页面上的顶部菜单都是相同的.
那么,我做错了什么?如何解决这个问题?TIA!
我有一些问题.我有一个带有一个隐藏输入元素的html表单.我的javascript代码中有一个数组.我想抓住按下提交按钮事件(通过使用jquery)并在隐藏的输入中推送数组数据.
问题是 - 首先发生什么:表单日期将流向.php脚本或javascript的数组将被推入隐藏的输入和后面的.php脚本将被调用?为什么会这样呢?
TIA!
upd(代码示例):
...
// process $_POST['domains']
...
<form action="registration?id=reg" method="post" enctype="multipart/form-data" id="reg_form">
...
<input type="hidden" id="domains" name="domains[]" value=""/>
...
<input type="submit" name="go" value="Register"/>
</form>
<script type="text/javascript">
var domainlist = [];
Array.prototype.indexOf = function (name) {
var ind = -1;
for (var i = 0; i < this.length; i++) {
if (this[i].name == name) {
ind = i;
break;
}
}
return ind;
}
$(document).ready(function() {
...
});
function checkDomain() {
...
req = $.ajax({
type: 'post', …Run Code Online (Sandbox Code Playgroud) 我有以下JavaScript代码:
aw_check_custom_validation['my-phone'] = /^\+[0-9]{1,3}(\s[0-9]{1,6}\s|\([0-9]{1,6}\)|[0-9]{1,6})[0-9\s]{5,8}$/u;
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Uncaught SyntaxError: Invalid flags supplied to RegExp constructor 'u'
Run Code Online (Sandbox Code Playgroud)
为什么/ u标志会导致此错误?
我用django来构建我的网络应用程序.其中一个页面发送不同的文件(具有不同的文件类型).我有6种文件类型.而我当前的代码版本(它真的很糟糕 - 这就是我写这个问题的原因)是:
try:
file = request.FILES[u'file_doc']
except MultiValueDictKeyError:
try:
file = request.FILES[u'file_fb2']
except MultiValueDictKeyError:
try:
file = request.FILES[u'file_pdf']
except MultiValueDictKeyError:
try:
file = request.FILES[u'file_txt']
except MultiValueDictKeyError:
try:
file = request.FILES[u'file_other']
except MultiValueDictKeyError:
try:
file = request.FILES[u'file_chm']
except MultiValueDictKeyError:
return HttpResponse('bad file type')
Run Code Online (Sandbox Code Playgroud)
你能告诉我 - 如何改善这种糟糕的代码和平.
TIA!
我想在子进程日志中使用子进程的名称(如"mysuperservice_1","mysuperservice_2"等等).使用python构建的服务.
我该怎么做?TIA!=)
EDIT1
我的supervisord配置看起来像:
[program:superservice]
command = python manage.py superservice
process_name=%(program_name)s_%(process_num)s
autostart=true
autorestart=true
numprocs=4
stdout_logfile=spool/logs/superservice.log
stderr_logfile=spool/logs/superservice.error.log
Run Code Online (Sandbox Code Playgroud)
它将产生这样的过程:
dizpers 4912 0.3 0.5 170472 21976 ? Sl 22:09 0:00 python manage.py superservice
dizpers 4913 0.3 0.5 170476 22520 ? Sl 22:09 0:00 python manage.py superservice
dizpers 4920 0.2 0.5 170476 22524 ? Sl 22:09 0:00 python manage.py superservice
dizpers 4926 0.3 0.5 170476 22432 ? Sl 22:09 0:00 python manage.py superservice
Run Code Online (Sandbox Code Playgroud)
所以,我不能只是简单地获取进程名称(例如,通过psutil模块).我需要通过supervisord以某种方式获得它.
python ×3
javascript ×2
coding-style ×1
dictionary ×1
html ×1
logging ×1
php ×1
regex ×1
selenium ×1
supervisord ×1