Gre*_*een 21 java selenium webdriver
这个问题接受了jQuery的伟大的答案,我想知道,如果有人能够给出一个例子这在Java中吗?
我正在做driver.findElement(By.className("current time")).click();
空间是问题,我在链接上看到了解释,但我不确定如何在java中处理它,并且无权更改类名.
粘贴我在Firefox中检查id的示例:下面的cssSelector示例不起作用,但我可能会遗漏一些东西.
<span>
<a class="current time" href="http://someurl/" onclick="s_objectID="http://someur/">url</a>
</span>
Run Code Online (Sandbox Code Playgroud)
nil*_*esh 51
您可以使用css选择器代替类名.您没有提及类"当前时间"的标记名.我假设它是输入,所以你的CSS选择器工作,
WebElement element = driver.findElement(By.cssSelector("input[class='current time']"));
element.click();
Run Code Online (Sandbox Code Playgroud)
编辑#1基于提供的html,
查看评论中的html,似乎有很多选项可以找到webElement.这是你的选择,
WebElement element = driver.findElement(By.cssSelector("a[class='current time']"));
element.click();
Run Code Online (Sandbox Code Playgroud)
或者这也应该有用,
WebElement element = driver.findElement(By.cssSelector("a.current.time"));
element.click();
Run Code Online (Sandbox Code Playgroud)
您也可以使用linkText,因为该元素是链接.从您提供的HTML,链接文本是'url'
WebElement element = driver.findElement(By.linkText("url"));
element.click();
Run Code Online (Sandbox Code Playgroud)
你也可以使用 By.partialLinkText("partial link text here");
您还可以使用xpath作为:
WebElement element = driver.findElement(By.xpath("//a[@class='current time']"));
element.click();
Run Code Online (Sandbox Code Playgroud)
要么,
WebElement element = driver.findElement(By.xpath("//a[text() = 'url']"));
element.click();
Run Code Online (Sandbox Code Playgroud)
小智 5
对于不太脆弱的测试,另一种选择是使用不依赖于类顺序的 XPATH,例如:
WebElement element = driver.findElement(By.xpath("//a[contains(@class, 'current') and contains(@class, 'time')]"));
Run Code Online (Sandbox Code Playgroud)
小智 5
每当您在类名中发现一些空格时,您需要切换到cssSelector
定位器。如果类名有空格,则将其转换为 cssSelector,如下所示。
在你的情况下,它将是:
WebElement element = driver.findElement(By.cssSelector(".current.time"));
element.click();
Run Code Online (Sandbox Code Playgroud)
PS:添加. 类名开头的[dot]并将空格替换为. [dot]将类名转换为 cssSelector。
归档时间: |
|
查看次数: |
79152 次 |
最近记录: |