我对Selenium很新(今天开始),我想得到对应于以下html输入的WebElement:
<input size="25" style="text-align:center;" value="http" onclick="this.select();" type="text"></input>
然后获得它的价值。这是我到目前为止所尝试的:
WebElement element = driver.findElement(By.cssSelector(".text-align:center"));
String text = element.getText();
或者这个:
WebElement element = driver.findElement(By.cssSelector("input[style='text-align:center']"));
但Java在两种情况下都返回异常:
org.openqa.selenium.InvalidSelectorException:给定的选择器 .text-align:center无效或不会导致 WebElement
谢谢你, 埃克托
答案 0 :(得分:2)
您是否必须通过cssSelector搜索元素?
你可以尝试一下:
WebElement element = driver.findElement(By.cssSelector("input[type='text']"));
如果不需要cssSelector,您可以尝试通过xpath抓取元素。 如果您使用firefox,则会有一个名为FireBug的插件,它允许您在检查元素后直接复制并直接复制xpath,然后使用:
WebElement element = driver.findElement(By.xpath("XPATH HERE"));
编辑:部分帖子消失了,重新加了。
答案 1 :(得分:0)
你的第一次尝试稍微关闭
driver.findElement(By.cssSelector(".text-align:center"));
CSS选择器中的(。)表示CSS类名,但它是元素上的样式而不是类。该元素没有以这种方式使用的类。
你的第二次尝试看起来不错,但也许它在页面上不是唯一的?很难说只有一行HTML。您必须提供更多页面的HTML。再试一次,但得到value
而不是文字。
WebElement element = driver.findElement(By.cssSelector("input[style='text-align:center']"));
System.out.println(element.getAttribute("value"));
这有用吗?您可能需要提供一些围绕INPUT
的唯一HTML,我们可以使用它来使CSS选择器更具体。