小编Alp*_*Alp的帖子

使用JQuery选择和识别元素以在Selenium 2 Java API中使用它

情况就是这样:

  • 我使用Selenium 2的Java API来打开和控制firefox浏览器实例
  • 我通过JavaScript执行将jQuery脚本加载到页面
  • 然后我使用jQuery表达式来选择元素并遍历DOM树

现在是我的问题,我能以某种方式找到每个找到的元素的唯一标识符吗?我的目标是通过使用Xpath或CSS选择器与Selenium获得相同的元素.因此,如果我能为jQuery中的元素生成一个明确的选择器,那将是最直接的.其他想法也是受欢迎的.

我需要一种自动方法来识别jQuery中的元素,这些元素可以"转换"为Selenium元素/定位器.

/编辑

为了更清楚:

如果我在jQuery中选择了一个元素:

webDriver.executeScript("var element = $('#myDiv input.test')");
Run Code Online (Sandbox Code Playgroud)

现在,我想要这样的事情:

WebElement webElement = webDriver.executeScript("return element");
Run Code Online (Sandbox Code Playgroud)

那可能吗?

java jquery selenium selenium-webdriver

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

jQuery 事件:在已经存在的事件之前添加一个回调处理程序

在网页上是带有点击和/或按键处理程序的元素。如果我添加一个新的,它将在它们之后执行。我需要一种方法来添加一个新的回调,它被添加到事件处理程序列表中,以便预先执行。jQuery 怎么可能呢?

更新

为什么我不能只使用 jQuery 的 unbind 方法?我正在将我的 jQuery 代码注入任何网页,因此我不知道是否使用了任何 JavaScript 框架以及使用了哪个 JavaScript 框架。我需要一种通用的方法来检测事件处理程序并预先添加我的。(在您提问之前,我正在构建一个“记录器”应用程序,用于跟踪用户操作以存储它们并在以后执行它们。)

更新 2

我只使用 Firefox,不需要兼容 IE。我必须等待页面完全加载,然后我的 jQuery 脚本将被调用。

javascript jquery click callback jquery-events

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

在Django模型中存储Field的版本化历史记录

我有一个带有文本字段的模型,需要进行版本控制.

class Book(models.Model):
    title = models.CharField(max_length=100)
    summary = models.TextField()
Run Code Online (Sandbox Code Playgroud)

预期的行为如下:

  • 如果我使用摘要创建新书,则文本将正常保存
  • 如果更新摘要,则需要将旧状态存储在具有版本号和时间戳的某个位置
  • 应该可以轻松查询当前,一系列或特定版本
  • summary应对字段进行版本控制,而不是整个模型

我该怎么办?

python django history model version

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

Django中具有多个多对多关系的数据库建模

我可能需要一些帮助来设计我的模型及其关系.

简短概述

  • :书名(例如"指环王")
  • 标签:与书籍相关的标签(例如"幻想","巫师","史诗般的战斗")
  • 方面:与标签相关的方面,或者换句话说,用户在特定标签出现时可以评价的事物,例如:
    • 对于标签"幻想"方面可能是"世界细节"和"时间"
    • 对于标签"史诗般的战斗"方面可能是"戈尔水平"和"战斗紧张"

每个标签可用于Book的多个实例(例如"指环王"和"Discworld"都有"Fantasy"标签).

每个Aspect可以在Tag的多个实例中使用(例如"Fantasy"和"Scifi"都具有"World Detail"方面).

这是一个描述性图像:

在此输入图像描述

(哇,这些都很大)

"为什么你需要额外的桌面BookAspect?" 你可能会问?

因为我想存储与特定书籍相关的每个方面的用户评级.

这是主要问题.我想在Django中对此进行建模,这是我到目前为止所得到的:

class Book(models.Model):
    title = models.CharField(max_length=100, unique=True)
    tags = ManyToManyField(Tag)
    # the following line is a workaround...
    aspects = models.ManyToManyField(Aspect, through='BookAspect')

class Tag(models.Model):
    name = models.CharField(max_length=100)
    aspects = models.ManyToManyField(Aspect)

class Aspect(models.Model):
    name = models.CharField(max_length=100)

# this class is a workaround ...
class BookAspect(models.Model):
    book = models.ForeignKey(Book)
    aspect = models.ForeignKey(Aspect)
    # this is from django-ratings
    rating = …
Run Code Online (Sandbox Code Playgroud)

python django many-to-many django-signals django-models

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

Bootstrap模式在内容更改时调整大小

我有一个包含表格的bootstrap模态窗口.如果用户提交表单,则通过Ajax进行验证.如果有任何错误,它会显示在模态中的表单上方(不重新加载页面).

因此,我需要一种方法来在内容更改时调整模式的大小.有任何想法吗?

javascript resize modal-dialog onchange twitter-bootstrap

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

svg 标签的复杂参数(CSS 的模拟 calc())

你能告诉我 svg 标签是否可以设置复杂的参数吗?

对于css来说,有calc()命令,例如:

width: calc (50% - 10px);
Run Code Online (Sandbox Code Playgroud)

svg 是否有类似的东西,例如:

<circle r = 'calc (50% - 2px)'>
Run Code Online (Sandbox Code Playgroud)

javascript css tags parameters svg

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

来自Selenium 2/WebDriver的Id的jQuery元素选择器

我可以在Selenium中获取一个元素的ID ((RemoteWebElement) webElement).getId(),它会返回一个这样的字符串:

{e9b6a1cc-bb6f-4740-b9cb-b83c1569d96d}
Run Code Online (Sandbox Code Playgroud)

我想知道该ID的来源.我正在使用FirefoxDriver(),所以这与Firefox有关吗?

有没有办法只通过知道这个ID来选择一个带有Jquery的元素?

java firefox jquery webdriver selenium-webdriver

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

css或xpath选择器:具有特定值的任何属性的元素

我想匹配HTML Dom树中具有值"foo"的任何属性的所有元素.它应该是CSS或XPath选择器.

我天真的方法就像css选择器一样:

*[*='foo']
Run Code Online (Sandbox Code Playgroud)

正确的语法怎么样?

html css xpath dom css-selectors

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

Jquery在网页的完整可见文本上提取带有正则表达式的文本

我知道James Padolsey的jQuery正则表达式插件:http://james.padolsey.com/javascript/regex-selector-for-jquery/

但我需要一些不同的东西:

  1. 正则表达式应该搜索网页的整个可见文本.
  2. 我想获取文本本身,而不是包含它们的元素.

以下内容将匹配要求1,但不符合2:

$('*').filter(function() {
    return this.text().match(/\d\d\d/);
});
Run Code Online (Sandbox Code Playgroud)

知道我怎么能以良好的表现做到这一点?

regex jquery text extract

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

获取元素的DOM层次结构级别(计数后代级别)

有没有一种有效的方法来计算特定元素的最深层后代级别?

例:

<div id="wrapper">
  <ul>
    <li class="first">first</li>
    <li class="active">second</li>
    <li class="last"><a>third</a></li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

#wrapper应该返回一个后代级别,4因为最深的链是这样的:#wrapper > ul > li > a.

li.first应该返回,1因为它没有孩子,li.last应该返回2因为li.last > a.

我可以做一个$('#wrapper').find(*)迭代所有结果,对于有很多后代的元素来说应该很慢,特别是对于body元素.

这是一个实验的开始:http://jsbin.com/ixeWaja/1/edit

任何想法如何有效地解决这个问题?

html javascript jquery

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