小编cod*_*321的帖子

ElementNotVisibleException:消息:元素当前不可见... selenium(python)

我正在使用python的selenium获取那些恼人的元素是不可见的异常,而元素是活动的,选择的和闪烁的.

问题是在页面上制作一个jfiddle,所以这里不是制作小提琴本身,而是在你的ipython终端登录并拥有一个webdriver(名为'driver')的切割和粘贴方式(输入用户名和密码)进入ipython,而不是页面):

https://gist.github.com/codyc4321/787dd6f62e71cc71ae83

现在有一个驱动程序,你登录jsfiddle,我在这里做的一切都失败了,除了第一次选择框(让我说我想把CSS放在CSS框中):

https://gist.github.com/codyc4321/f4c03c0606c2e3e4ff5b

粘贴activate_hidden_element并在第一个代码行中看到CSS面板亮起.出于某种原因,这个突出显示的面板"不可见",您无法粘贴和编码.该项目是

  <div class="window top" id="panel_css" data-panel_type="css">
    <textarea id="id_code_css" rows="10" cols="40" name="code_css"></textarea>
    <a href="#" class="windowLabel" data-panel="css">
      <span class="label">CSS</span><i class="bts bt-gear"></i>
    </a>
  </div>
Run Code Online (Sandbox Code Playgroud)

所有其他项目(HTML,JS)基本相同.为什么这个活动框不允许文本粘贴?谢谢

解:

我使这项服务工作的丑陋方式是手动伪造剪切和粘贴:

css_content = get_inline_content_and_remove_tags(webpage_content, 'style')

js_content = get_inline_content_and_remove_tags(webpage_content, 'script')

webpage_content = # ...clean cruft...

def copy_paste_to_hidden_element(content=None, html_id=None):
    pyperclip.copy(content)
    activate_hidden_element(html_id=html_id, driver=driver)
    call_sp('xdotool key from+ctrl+v')
    time.sleep(1)

copy_paste_to_hidden_element(content=webpage_content, html_id="panel_html")
copy_paste_to_hidden_element(content=js_content, html_id="panel_js")
copy_paste_to_hidden_element(content=css_content, html_id="panel_css")
Run Code Online (Sandbox Code Playgroud)

它确实有效,唯一的小问题是它无法在后台运行,我需要单独离开屏幕大约30秒

javascript python selenium selenium-webdriver

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

Bash 关联字典不起作用(声明:-A:无效选项)

我已经遵循了每个 bash 字典示例,但没有一个起作用。我现在有了

_配置:

#!/bin/bash


instance_map["dev"]=project-dev
instance_map+=( ["stage"]="project-staging" )

declare -A animals=( ["moo"]="cow" ["woof"]="dog")
Run Code Online (Sandbox Code Playgroud)

测试.sh:

#!/bin/bash

source _CONFIG


echo ${instance_map["dev"]}
echo ${instance_map["stage"]}


echo "${animals[moo]}"
for sound in "${!animals[@]}"; do echo "$sound - ${animals[$sound]}"; done
Run Code Online (Sandbox Code Playgroud)

出于某种原因,在遵循每个示例之后,我得到

$ ./test.sh dev
_CONFIG: line 9: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
project-devproject-staging
project-devproject-staging
dog
0 - dog

$ bash --version
GNU bash, version 4.4.0(1)-release (x86_64-apple-darwin15.6.0)
Run Code Online (Sandbox Code Playgroud)

如何在 Bash 中将用户输入“dev”映射到“myprojectname”?

macos bash dictionary

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

在Knockoutjs中异步加载页面

我想立即加载页面,然后加载数据以填充select2框.使用Knockout,我最终没有得到任何错误,但在我的select2 select框中看不到任何项目.从服务器同步加载工作,但非常慢(因为获取app_names).我到目前为止:

<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Admin suite</title>

    <!-- Load javascript libraries -->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.min.js"></script>

    <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/css/bootstrap.css" rel="stylesheet">

    <!-- best interactive input box -->
    <link href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.min.css" rel="stylesheet" />

    <script type="text/javascript" src="//cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>

    <script type="text/javascript" src="//cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.js"></script>
    <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/bootstrap.daterangepicker/2/daterangepicker.css" />

    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.1/knockout-min.js"></script>

    <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet">
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script>
    <!-- semantic -->
    <!-- <link href="https://cdnjs.com/libraries/semantic-ui" rel="stylesheet"/> -->

    <style>
        .center {
             float: none;
             margin-left: auto;
             margin-right: …
Run Code Online (Sandbox Code Playgroud)

javascript jquery knockout.js

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

python包装函数在装饰器内部获取参数

我正在尝试编写python装饰器,我在理解内部包装器如何获取参数时遇到问题.我在这里:

import time

def timing_function(some_function):
    def wrapper():
        t1 = time.time()
        some_function()
        t2 = time.time()
        return "Time it took to run: " + str((t2-t1)) + "\n"
    return wrapper

@timing_function
def my_function(x):
    return x * x

my_function(6)

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-fe2786a2753c> in <module>()
----> 1 my_function(6)

TypeError: wrapper() takes no arguments (1 given)
Run Code Online (Sandbox Code Playgroud)

这与示例略有不同:

import time

def timing_function(some_function):

    """
    Outputs the time a function takes
    to execute.
    """

    def wrapper():
        t1 = time.time()
        some_function()
        t2 = time.time()
        return …
Run Code Online (Sandbox Code Playgroud)

python decorator python-decorators

5
推荐指数
2
解决办法
7305
查看次数

你怎么使django十进制字段小部件(numberinput)增量不同

我允许有人为他的披萨配料设定价格,我有一个简单的表格,这是默认的DecimalField小部件

models.py:

class Topping(models.Model):
    title       = models.CharField(max_length=60)
    description = models.CharField(max_length=50, blank=True, null=True)
    price       = models.DecimalField(max_digits=4, decimal_places=2, default=0.00)
Run Code Online (Sandbox Code Playgroud)

forms.py:

class ToppingForm(forms.ModelForm):
    class Meta:
        model = Topping
        fields = ('title', 'price')
Run Code Online (Sandbox Code Playgroud)

截至目前,小部件允许单击向上或向下以增加价格,但默认为0.01或一分钱.这没用,我希望他们一次能够跳25美分.我不知道我是否正在阅读错误的github,但是源代码没有显示任何兴趣,比如设置增量的关键字arg:

https://github.com/django/django/blob/master/django/forms/widgets.py

class TextInput(Input):
    input_type = 'text'

    def __init__(self, attrs=None):
        if attrs is not None:
            self.input_type = attrs.pop('type', self.input_type)
        super(TextInput, self).__init__(attrs)


class NumberInput(TextInput):
    input_type = 'number'
Run Code Online (Sandbox Code Playgroud)

谢谢

在此输入图像描述

python django widget

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

你如何自动获取 xdotool 的窗口 ID

我正在尝试自动化 selenium 需要太长时间的测试表单(javascript 重型现代表单),我想使用 xdotool 并获取窗口 ID。我看到您可以调用xdotool selectwindow并单击它,但是您每次都必须单击它。我想告诉它“对于标签标题为 x 的 google chrome 窗口,请执行 y”

我在这里得到了窗口 ID:

cchilders@cchilders-Dell-Precision-M3800:~$ xdotool selectwindow
65011713
Run Code Online (Sandbox Code Playgroud)

这是针对 chrome 本身的,每个选项卡在单击时都会获得相同的值。所以我希望在 ps 或窗口管理器中找到它,但没有:

cchilders@cchilders-Dell-Precision-M3800:~$ wmctrl -l
0x03a00001  0 cchilders-Dell-Precision-M3800 views.py - /home/cchilders/work_projects - Atom
0x03a00048  0 cchilders-Dell-Precision-M3800 pip_freeze_update.py - /home/cchilders/scripts - Atom
0x03a000bc  0 cchilders-Dell-Precision-M3800 urls.py - /home/cchilders/work_projects - Atom
Run Code Online (Sandbox Code Playgroud)

ps 也不起作用:

(clientsite)cchilders@cchilders-Dell-Precision-M3800:~$ ps -alx
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
4     0     1     0  20   0 185188  5752 …
Run Code Online (Sandbox Code Playgroud)

linux bash scripting ps xdotool

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

django.core.exceptions.ImproperlyConfigured:启用'django.contrib.auth.context_processors.auth'

我开始了一个新项目,我得到了:

django.core.exceptions.ImproperlyConfigured: Enable 'django.contrib.auth.context_processors.auth' in your TEMPLATES setting in order to use the admin application.
Run Code Online (Sandbox Code Playgroud)

我跟随django docs 1.9:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
    }
]
Run Code Online (Sandbox Code Playgroud)

可能是什么问题(它如何让我配置)?谢谢

python django django-settings django-1.9

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

DRF auth_token: "non_field_errors": [ "无法使用提供的凭据登录。"

为 Django 编写的两个 JWT 包都给我带来了文档不佳的问题,所以我尝试了 DRF-auth_token 包。这是我遵循的一个很好的例子,Django Rest Framework Token Authentication。理论上你应该能够去

localhost:8000/api-token-auth/

网址.py:

from django.conf.urls import url, include
from django.contrib import admin
from django.contrib.auth.models import User
from rest_framework.authtoken import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^api/', include('api.urls', namespace='api')),
    url(r'^orders/', include('orders.urls', namespace='orders')),
    url(r'^api-token-auth/', views.obtain_auth_token, name='auth-token'),

]
Run Code Online (Sandbox Code Playgroud)

为用户获取令牌不起作用,所以我自己重写了它以使其工作:

@api_view(['POST'])
def customer_login(request):
    """
    Try to login a customer (food orderer)
    """
    data = request.data

    try:
        username = data['username']
        password = data['password']
    except:
        return Response(status=status.HTTP_400_BAD_REQUEST)

    try:
        user = User.objects.get(username=username, password=password)
    except:
        return …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework django-rest-auth django-1.10

5
推荐指数
4
解决办法
2万
查看次数

MySQL: django.db.utils.OperationalError: (1698, "Access denied for user 'root'@'localhost'") 使用正确的用户名和密码

django.db.utils.OperationalError: (1698, "Access denied for user 'root'@'localhost'")用mysql的时候有。用户名和密码正确:

DB_HOST = '127.0.0.1'
DB_USER = 'root'
DB_PASSWORD = ''
Run Code Online (Sandbox Code Playgroud)

我可以以root身份登录mysql:

$ sudo mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Run Code Online (Sandbox Code Playgroud)

但不是cchilders

$ mysql -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
Run Code Online (Sandbox Code Playgroud)

这可能会导致问题。上次我安装mysql时没有发生这种情况,所以对我来说没有意义。我的客户很好:

$ pip3 freeze
Django==1.10.5
mysqlclient==1.3.9
Run Code Online (Sandbox Code Playgroud)

如何让我的普通用户运行 mysql,以便我可以在终端中运行 django?谢谢你

脏的解决办法:

没有任何修复,总是运行 mysql 作为 sudo

python mysql django django-settings python-3.x

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

IPython 3.5返回"错误的解释器:没有这样的文件或目录"

我在尝试使用IPython时遇到随机错误.我现在突然无法使用iPython3而没有任何解释,我不记得安装除了以太坊客户端之外的任何东西,我没有下载哈希或任何东西.我突然得到:

cchilders:~ 
$ ipython3
-bash: /usr/local/bin/ipython3: /usr/local/opt/python3/bin/python3.5: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

IPython或IPython3都没有工作.在卸载并重新安装Python和Python3之后,我现在可以使用IPython.但是,如果我尝试iPython3,就会出现同样的错误.

这是我见过的更荒谬的错误之一,因为我重新安装了IPython,Python本身和Python3而没有任何变化.

python macos bash ipython

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