簡體   English   中英

通過HTML輸入從cssSelector獲取Selenium WebElement

[英]Obtain Selenium WebElement from cssSelector over HTML Input

我對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

謝謝你Héctor

您是否必須通過cssSelector搜索元素?

您可以嘗試一下:

WebElement element = driver.findElement(By.cssSelector("input[type='text']"));

如果沒有必要使用cssSelector,則可以嘗試通過xpath來獲取元素。 如果您使用的是firefox,則有一個名為FireBug的插件,通過該插件,您可以在檢查元素並直接復制xpath之后使用以下命令進行右鍵單擊:

WebElement element = driver.findElement(By.xpath("XPATH HERE"));

編輯:部分帖子消失了,變紅了。

您的第一次嘗試稍微有些偏離

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,我們可以使用這些HTML使CSS選擇器更加具體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM