小编Zei*_*zar的帖子

使用selenium和python检查是否存在任何警报

我正在尝试使用python语言的selenium编写一个用于管理用户的网页的测试.在此页面中,有人可以为用户添加角色,如果在添加角色时存在角色,则会发出警报.我不知道警报是javascript警报还是网页的元素.我想自动检查是否存在警报,因为检查列表中的角色会浪费时间并且负载很大.我试过这个:

browser = webdriver.Firefox()
browser.get("url")
browser.find_the_element_by_id("add_button").click()
try:
    alert = browser.switch_to_alert()
    alert.accept()
    print "alert accepted"
except:
    print "no alert"
Run Code Online (Sandbox Code Playgroud)

但它没有用,我得到了"UnexpectedAlertPresentException".我也试过这个:

browser = webdriver.Firefox()
browser.get("url")
browser.find_the_element_by_id("add_button").click()
s = set(browser.window_handles)
s.remove(browser.current_window_handle)
browser.switch_to_window(s.pop()) 
Run Code Online (Sandbox Code Playgroud)

但我得到了同样的例外.此外,我尝试使用firebug访问警报以检查我是否可以访问其属性,但右键单击已禁用.即使在其他语言中,我也需要非常快速的解决方案.无论如何我能理解这种方法.我将不胜感激任何帮助.

python testing selenium alert window-handles

53
推荐指数
2
解决办法
7万
查看次数

Selenium WebDriver如何关闭浏览器弹出窗口

我正在使用selenium webDriver为Web应用程序编写测试,并遇到了一个场景,当我尝试关闭浏览器时,我得到一个弹出窗口"你确定吗?页面要求你确认你要离开 - 输入的数据将会迷路了." 有2个按钮:保持页面和保持页面

如何点击这些按钮?

selenium webdriver

36
推荐指数
4
解决办法
7万
查看次数

如何使用python在机器人框架中导入和使用用户定义的类

假设我在python中有一个类:

class TestClass(object):
    def __init__(self, arg1, arg2):
        self.arg1 = arg1
        self.arg2 = arg2

    def print_args(self):
        print arg1, arg2
Run Code Online (Sandbox Code Playgroud)

我想用来robotframework实现我的测试场景.我想从上面的类创建一个实例并调用它的方法.怎么做?我知道如何导入lib; 它应该是这样的:

Library   TestClass
Run Code Online (Sandbox Code Playgroud)

我不知道如何从这个类初始化一个对象,并通过这个对象调用类方法.如果我想用python实现它,我会写一些像这样的代码:

import TestClass
test = TestClass('ARG1', 'ARG2')
test.print_args()
Run Code Online (Sandbox Code Playgroud)

现在,我想知道如何写这个robotframework.有帮助吗?

python testing robotframework

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

`docker pull`从私有gitlab注册表返回`denied:access forbidden`

我有一个Dockerfile将实现FROM私人注册表的图像.我构建这个文件没有任何问题Docker version 1.12.6, build 78d1802docker-compose version 1.8.0, build unknown,但在另一台机器,它有Docker version 17.06.1-ce, build 874a737docker-compose version 1.16.1, build 6d1ac21,docker-compose build返回:

FROM my.private.gitlab.registry:port/image:tag
http://my.private.gitlab.registry:port/v2/docker/image/manifests/tag: denied: access forbidden
Run Code Online (Sandbox Code Playgroud)

docker pull my.private.gitlab.registry:port/image:tag 返回相同.

请注意,我试图获得my.private.registry:port/image:tag并且http://my.private.registry:port/v2/docker/image/manifests/tag已被捕获.

gitlab docker dockerfile docker-compose access

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

在flask python中调用POST请求时,无法解码JSON对象

我在python中编写了一个简单的REST-ful Web服务器flask,本教程中包含以下步骤; 但是我在调​​用POST请求时遇到了问题.代码是:

@app.route('/todo/api/v1.0/tasks', methods=['POST'])
def create_task():
    if not request.json or not 'title' in request.json:
        abort(400)
    task = {
        'id': tasks[-1]['id'] + 1,
        'title': request.json['title'],
        'description': request.json.get('description', ""),
        'done': False
    }
    tasks.append(task)
    return jsonify({'task': task}), 201
Run Code Online (Sandbox Code Playgroud)

POST使用curl上述页面中的示例发送请求:

curl -i -H "Content-Type: application/json" -X POST -d '{"title":"Read a book"}' http://127.0.0.1:5000/todo/api/v1.0/tasks
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个错误:

HTTP/1.0 400 BAD REQUEST
Content-Type: text/html
Content-Length: 187
Server: Werkzeug/0.11.10 Python/2.7.9
Date: Mon, 30 May 2016 09:05:52 GMT

<!DOCTYPE HTML …
Run Code Online (Sandbox Code Playgroud)

python webserver json flask flask-restful

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

选择与 GORM 一起存在

我想检查数据库表中是否存在一行。我首先使用了这种方法:

type MyStruct struct {
    ID    uint32
    Key   string
    Value string
}

var result MyStruct

err := db.
    Where("id = ? AND `key` = ? AND `value` = 0", myID, myKey).
    First(&result).
    Error

if err != nil {
    if err == gorm.ErrRecordNotFound {
        logrus.Error("ErrRecordNotFound")
    }
    logrus.Errorf("Other DB error: %s", err.Error())
}
Run Code Online (Sandbox Code Playgroud)

但我想通过编写原始 SQL 来实现这一点。我尝试了以下操作:

var result bool

db.Raw("SELECT EXISTS(SELECT 1 FROM my_table WHERE id = ? AND `key` = ? AND `value` = ?)",
    myID, myKey, "0").Scan(&result)
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误:

unsupported destination, …
Run Code Online (Sandbox Code Playgroud)

exists go go-gorm

8
推荐指数
2
解决办法
3万
查看次数

无法在selenium python中执行单击操作

我在python中使用selenium编写测试脚本.我有一个包含树视图对象的网页,如下所示:

在此输入图像描述

我想遍历菜单转到所需的目录.正负表示的HTML代码如下:

<a onclick="changeTree('tree', 'close.gif', 'open.gif');">
    <img id="someid" src="open.gif" />
</a>
Run Code Online (Sandbox Code Playgroud)

src图像的属性可以是open.gifclose.gif.

我可以通过简单地检查标签的src属性来检测天气有正负img.我也可以很容易地访问父标签,a通过使用.find_element_by_xpath("..").

问题是,我不能在没有进行点击操作img,也没有a标签.

我试过了webdriver.Actions(driver).move_to_element(el).click().perform(); 但它不起作用.

我想我应该提到访问元素没有问题,因为我可以打印所有属性; 我只是无法对它们执行操作.有帮助吗?

编辑1:

这是用于折叠和展开树的js代码:

function changeTree(tree, image1, image2) {
    if (!isTreeviewLocked(tree)) {
        var image = document.getElementById("treeViewImage" + tree);
        if (image.src.indexOf(image1)!=-1) {
            image.src = image2;
        } else {
            image.src = image1;
        }

        if (document.getElementById("treeView" + tree).innerHTML == "") {
            return true;
        } else {
            changeMenu("treeView" + …
Run Code Online (Sandbox Code Playgroud)

python selenium click dom-events

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

jstree不使用ASP.NET MVC 4刷新

我目前无法刷新整个jstree; 初始树加载工作正常,刷新子节点也按预期工作,但如果数据在根节点中发生更改,即使数据已更改并且已对服务器进行调用,树也不会刷新.

我将尝试解释jstree的设置.

全局变量

var levelType;
Run Code Online (Sandbox Code Playgroud)

树设置

  $("#explorer").jstree({
        plugins: ["core", "ui", "themes", "json_data", "types"],
        themes: {
            theme: "default",
            dots: false,
            url: url = '@Url.Content("~/Content/jstree/default/style.css")'
        },
             json_data: {
                 ajax: {
                     cache: false,
                     url: function (node) {
                         var nodeId = "";
                         var url = "";
                         if (node == -1) {
                             url = '@Url.Action("GetSites", "Site")';
                    } else if ($(node).attr("rel") == "station") {
                        url = '@Url.Action("GetInspections", "Inspection")' + '/' + $(node).attr("id");
                    }
                    return url;
                },
                success: function (metaData, textStatus, jqXhr) {

                    if (levelType == …
Run Code Online (Sandbox Code Playgroud)

jquery jstree asp.net-mvc-4

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

将 Maven 存储库挂载到 Docker

我正在尝试构建一个 Java 应用程序并使用 docker 制作一个包。这个构建需要一个 maven 存储库,我不想包含在图像中,因为它非常大。我想尝试使用卷并将我的本地 Maven 存储库挂载到映像中的 Maven 存储库。我使用apt-get install -y maven是为了让 maven 可用,但我.m2在图像中找不到目录$HOME

我用ls -la $HOME,ls -lals -la /root找到maven home,但那里没有.m2目录。

编辑 1:

我有这些行Dockerfile

FROM ubuntu
MAINTAINER Zeinab Abbasimazar
# Install and configure required packages
RUN apt-get update; \
    apt-get install -y --no-install-recommends apt-utils; \
    apt-get install -y dialog; \
    apt-get install -y wget unzip curl maven; \
    mkdir $HOME/.m2/; \
    ls …
Run Code Online (Sandbox Code Playgroud)

java maven docker dockerfile docker-build

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

docker-compose 使用 .env 文件中的环境变量

我有一些环境变量,我想在docker-compose配置和Dockerfile. 我有一个命名的环境文件.env,以便在docker-compose文件中使用它们(我用于此问题的解决方案);但是这些环境变量在 node 的Dockerfile. 考虑JMX_PORT,WS_PORTIP作为在我的.env文件中定义的变量;我echo为他们每个人都放了一个,Dockerfile以检查它们是否传递给它。

我试图放入节点.envenv_file部分:

version: "2"
services:
  mynode:
    build:
      context: .
      dockerfile: Dockerfile-mynode
    env_file:
      - .env
    ports:
      - "${JMX_PORT}:${JMX_PORT}"
      - "${WS_PORT}:${WS_PORT}"
Run Code Online (Sandbox Code Playgroud)

我也试过:

version: "2"
services:
  mynode:
    build:
      context: .
      dockerfile: Dockerfile-mynode
    environment:
      - IP=${IP}
      - JMX_PORT=${JMX_PORT}
      - WS_PORT=${WS_PORT}
    ports:
      - "${JMX_PORT}:${JMX_PORT}"
      - "${WS_PORT}:${WS_PORT}"
Run Code Online (Sandbox Code Playgroud)

并稍作改动:

version: "2"
services:
  mynode:
    build:
      context: …
Run Code Online (Sandbox Code Playgroud)

environment environment-variables docker dockerfile docker-compose

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