小编drk*_*hng的帖子

CSS测量单位'em'实际上代表什么?

正如标题所说,我想知道CSS单位'em'究竟代表什么.
如"厘米"代表Ç ENTI 安静.

我不是在问他们是什么或者如何使用它!

我无法在W3C上找到答案.
维基百科的文章已经说"东西":

em的名称与M.有关.最初,该单位是从给定字体中的大写"M"的宽度导出的.

我对第一句话的解释是'em'是字母'M'的发音/语音.
但是阅读第二句话,似乎'em'中的'e'代表字母'M'的宽度.
所以我仍然迷失,他们真正代表的是什么!

css

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

jquery .eq()方法中的"eq"代表什么?

例:

$("td:eq(2)").css("color", "red"); or
$('td').eq(2).css("color", "red");
Run Code Online (Sandbox Code Playgroud)

我想知道缩写"eq"代表什么,我不是问.eq()方法的作用,可以在这里找到.

关于问题的重要性:当我知道某些缩写真正代表什么时,我自己会发现学习语言更容易.而且我有时也会用"真实"的单词"朗读"我的书面代码.

jquery

34
推荐指数
3
解决办法
5900
查看次数

在OpenQA.Selenium(C#)中找不到WebDriverWait类

(从Java-Selenium迁移到C#-Selenium)

当使用Selenium和C#搜索显式等待时,我发现几个帖子的代码看起来类似于Java-Counterpart:

例如这里:

WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0,0,5));
wait.Until(By.Id("login"));
Run Code Online (Sandbox Code Playgroud)

或者在这里:

WebDriverWait wait = new WebDriverWait(driver, 30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("locator")));
Run Code Online (Sandbox Code Playgroud)

WebDriverWait来自OpenQA.Selenium.Support.UI命名空间,并且位于一个名为Selenium WebDriver支持类的单独包中

但是:
当我尝试在Visual Studio中编写代码(通过NuGet获取Selenium包)时,WebDriverWait在我的代码中使用将提示消息:

找不到类型或命名空间名称'WebDriverWait'(您是否缺少using指令或程序集引用?)

即使我通过包括Selenium参考

using OpenQA.Selenium;
Run Code Online (Sandbox Code Playgroud)

在查找WebDriverWait文档时,您会发现应该有一个名为的命名空间

OpenQA.Selenium.Support.UI

但我无法通过代码中的"使用"访问它.

为什么会这样?我在哪里可以找到WebDriverWait类?

c# selenium selenium-webdriver

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

获取已找到的WebElement的By定位器

是否有一种优雅的方式来获取Selenium WebElement的By定位器,我已经找到/识别出来了?

要清楚这个问题:我想要用"定位器"来查找元素.在这种情况下,我对特定属性或特定定位器(如css-locator)感兴趣.

我知道我可以解析WebElement的toString()方法的结果:

WebElement element = driver.findElement(By.id("myPreciousElement"));
System.out.println(element.toString());
Run Code Online (Sandbox Code Playgroud)

输出将是例如:

[[FirefoxDriver:WINDOWS(....)上的firefox] - > id:myPreciousElement]

如果你通过xpath找到你的元素:

WebElement element = driver.findElement(By.xpath("//div[@someId = 'someValue']"));
System.out.println(element.toString());
Run Code Online (Sandbox Code Playgroud)

然后你的输出将是:

[[FirefoxDriver:WINDOWS(....)上的firefox] - > xpath:// div [@someId ='someValue']]

所以我目前编写了自己的方法来解析这个输出并给我"重新创建"By Locator.


但是有没有一种更优雅的方式已经在Selenium中实现,以获取用于查找元素的By定位器?

到目前为止我找不到一个.

如果您确定,没有开箱即用,您能想到API创建者可能无法提供此功能的任何原因吗?



*尽管这与这个问题无关,如果有人想知道为什么你需要这个功能,只需要两个例子:

  • 如果你使用PageFactory,你很可能不会将定位器作为Page类中的成员变量,但是在使用页面元素时可能需要它们.
  • 你正在使用那些只使用没有PageFactory的页面对象模式的人的API,因此希望你交出定位器而不是元素本身.*

java selenium pageobjects selenium-webdriver

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

Selenium WebDriver - 使用cssSelector和第n个子查找元素

<ul>
<li class="active">
    <a href="#">
    <i class="fa fa-home"></i><br>
    <span class="title">Home</span>
    </a>
</li>

<li>
    <a href="#">
    <i class="fa fa-rss-square"></i><br>
    <span class="title">Posts</span>
    </a>
</li>

<li>
    <a href="#">
    <i class="fa fa-calendar"></i><br>
    <span class="title">Events</span>
    </a>
</li>

<li>
    <a href="#">
    <i class="fa fa-bar-chart-o"></i><br>
    <span class="title">My Activity</span>
    </a>
</li>

<li>
    <a href="#">
    <i class="fa fa-edit"></i><br>
    <span class="title">Assessments</span>
    </a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我想找到相应的span元素.我想使用css选择器检查span元素的顺序.因此,当我使用selenium IDE时,我将像下面一样验证它(使用第n个子概念).

verifyText | css = .title:nth(0)| 首页
验证文本| css = .title:nth(1)| 帖子
验证文本| css = .title:nth(2)| 事件
verifyText | css = .title:nth(3)| 我的活动
验证文本| css …

selenium selenium-ide css-selectors selenium-webdriver

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

如何降级到Chrome 42.0.2311.90?

我机器上的谷歌浏览器最近更新到了v44.我正在Chrome上使用Selenium WebDriver,一旦我更新了Chrome,我的所有测试都已经死了.我使用Chromedriver v2.16.我的合作伙伴的PC有Chrome v42.0.2311.90和Chromedriver v2.16.他的机器上的测试运行良好.现在,基于此,我很确定问题可能不在于Chromedriver.

那么,我怎样才能降级到Chrome 42.0.2311.90?

我尝试过使用离线安装程序: Google Chrome Alternate Offline Installer 但这总是给我安装的最新版本即v44.

我需要的版本可以在这里找到: 谷歌浏览器v42.0.2311.90稳定的频道更新

selenium google-chrome selenium-chromedriver

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

TestNG:当@BeforeClass方法失败时,会跳过所有后续的测试类?

我的设置:

  • TestBase类含有@BeforeClass方法
  • 几个Test类从TestBase 扩展而且还包含@BeforeClass方法
  • testNG 6.8.8

为什么这样设置?:

  • 我需要TestBase类中的@BeforeClass来提供所有测试类都需要的设置,我不想在每个Test类中重复.例如,与线程ID相关的登录凭据.
  • TestBase类还实例化Selenium WebDriver
  • 我需要Test类中的@BeforeClass来初始化所有@Test方法需要使用的所有东西,但是只需要(或必须)为所有测试构建/调用一次.这包括对所述WebDriver实例的调用(这就是"普通"构造函数在这里不起作用的原因)

这是发生的事情:

当我通过testNG xml文件运行测试并且其中一个Test类的@BeforeClass方法中存在异常时,TestNG会跳过所有后续的Test类.

为什么会这样?怎么预防呢?

例如,当我将TestBase类中的注释更改为@BeforeSuite时,即使@BeforeClass方法中存在异常,也会运行所有测试.

例:

运行xml文件时,将跳过完整的RunAllTestClasses02类.

testNG xml文件:

<?xml version="1.0" encoding="UTF-8"?>

<suite name = "MiscSuite">
    <test name = "MiscTest">
        <classes >
            <class name="drkthng.misc.RunAllTestClasses01" />
            <class name="drkthng.misc.RunAllTestClasses02" />
        </classes>
    </test>
</suite>
Run Code Online (Sandbox Code Playgroud)

带有@BeforeClass方法的TestBase类:

public abstract class RunAllTestClassesBase {

    @BeforeClass
    public void beforeClass() {
        // do something that all Test classes will need
    }
}
Run Code Online (Sandbox Code Playgroud)

在@BeforeClass方法中抛出异常的测试类:

public class …
Run Code Online (Sandbox Code Playgroud)

java testng selenium annotations selenium-webdriver

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

为什么 Selenium 中的 getText() 不适用于 &lt;textarea&gt; 元素,而 getAttribute("value") 却可以?

假设您有一些带有 textarea 元素的 HTML,并且希望通过 Selenium(此处为 Java 绑定)获取其文本。

\n
<textarea name="txtComment" id="txtComment" rows="2" cols="20">\n    Some comment inside the textarea\n</textarea>\n
Run Code Online (Sandbox Code Playgroud)\n
\n

这就是我通过开发人员工具(Internet\xc2\xa0Explorer 和 Firefox)查看代码的方式,因此看起来它是一个普通的文本节点,而不是在元素的“value”属性内。

\n

为什么getText() 不起作用

\n
driver.findElement(By.id("txtComment")).getText();\n
Run Code Online (Sandbox Code Playgroud)\n

它只返回一个空 String

\n

但是使用getAttribute("value") 可以工作并返回预期的字符串:

\n
driver.findElement(By.id("txtComment")).getAttribute("value");\n
Run Code Online (Sandbox Code Playgroud)\n

将按预期返回“文本区域内的一些评论”

\n

这是相当令人惊讶的,因为 Selenium 文档中有关getText()的内容如下:

\n
\n

获取此元素的可见(即未被 CSS 隐藏)innerText,\n包括子元素,不带任何前导或尾随空格。

\n

返回:\n该元素的内部文本。

\n
\n

正如开头的 HTML 代码所示,元素的文本部分是可见的,它是“innerText”,不是吗?

\n

有人可以阐明我错在哪里,或者如果我没有,为什么在 Selenium 中这样实现?

\n

html java selenium selenium-webdriver

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

JavaFX:在ButtonBar中对齐按钮(使用SceneBuilder或fxml)

我有一个ButtonBar带有两个按钮的JavaFX (通过SceneBuilder创建).

我希望其中一个按钮左对齐,另一个按钮右对齐.(见截图)

在此输入图像描述

从文档中我已经知道如何在java-source-code中实现这一点:

ButtonBar.setButtonData(newButton, ButtonData.LEFT);
Run Code Online (Sandbox Code Playgroud)

我想知道如何实现这一点而不必在我的java文件中写这个,但
我如何使用SceneBuilder或相应的fxml文件来实现这一点.

我的.fxml文件目前看起来像这样:

<ButtonBar>
  <buttons>
    <Button text="New" />
    <Button text="Save" />
  </buttons>
</ButtonBar>
Run Code Online (Sandbox Code Playgroud)

*我在Windows上
**这个答案不是我想要的,因为他正在使用ToolBar,但我想知道如何使用ButtonBar(并且他的方法不适用于ButtonBar)

java javafx fxml scenebuilder javafx-8

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

使用Selenium WebDriver打开本地HTML文件

如何使用Selenium Webdriver在桌面上打开本地HTML文件?

我尝试如下,但无法打开

public static String OpenStub (String stub) {

  try {

    driver=new FirefoxDriver();
    driver.manage().timeouts().pageLoadTimeout(10000, TimeUnit.MILLISECONDS);

    driver.get("C://Users//sharmayo//Desktop//testlogin.html");

    return "Pass";
  }
}
Run Code Online (Sandbox Code Playgroud)

java selenium

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

NUnit - 在Visual Studio中使用Test Adapter运行测试时获取results.xml

当使用nunit-console.exe从命令行运行测试时,您可以result.xml创建一个文件,例如ReportUnit可以进一步使用它来创建漂亮的报告.

有没有办法在不通过nunit-console运行测试时生成此result.xml文件,而是通过测试资源管理器窗口运行适用于Visual StudioNUnit(3.0)测试适配器

至少我在测试结束后无法找到xml文件,所以我假设没有创建.

*我正在使用Microsoft Visual Studio社区2015

c# nunit visual-studio

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

无法通过selenium web驱动程序中的By.linkText查找元素

  1. 转到http://live.guru99.com/
  2. 点击我的帐户链接
  3. 单击创建帐户链接并填写除电子邮件ID之外的新用户信息.

嗨..以上是我的测试用例.无法为帐户链接创建xpath.

这是我试过的脚本:

WebDriver Driver=new FirefoxDriver();                 
Driver.get("http://live.guru99.com/");
WebElement element=Driver.findElement(By.linkText("My Account"));       
element.click();
Run Code Online (Sandbox Code Playgroud)

如果有人帮助我会很棒.

提前致谢.

selenium selenium-firefoxdriver selenium-webdriver

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

如何获取此 XPATH 的最后一个匹配项?

driver.findElement(By.xpath(".//div[contains(text(),'Approval Date')]")).click();
Run Code Online (Sandbox Code Playgroud)

上面的代码找到了表中的第一个元素。

表中有三行带有文本“批准日期”。

如何选择第三行而不是默认选择第一行?

selenium xpath

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