小编Dmi*_*sev的帖子

如何使用Selenium webdriver和Python逐个单击链接

网站有顶级菜单,有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!

python selenium selenium-webdriver

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

提交按钮上的Javascript

我有一些问题.我有一个带有一个隐藏输入元素的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)

html javascript php

0
推荐指数
1
解决办法
2000
查看次数

Javascript正则表达式创建错误

我有以下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标志会导致此错误?

javascript regex

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

字典:密钥是否存在

我用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!

python dictionary coding-style

0
推荐指数
1
解决办法
517
查看次数

在子进程日志记录中使用supervisord生成的进程名称

我想在子进程日志中使用子进程的名称(如"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 logging supervisord

0
推荐指数
1
解决办法
1180
查看次数