2014-07-06 95 views
0

我有一個ID爲「a:2:3:d:」的td元素,當我想通過id選擇它時,我的webdriver找不到它。有沒有一種方法可以通過標識符的一部分進行搜索,因爲我認爲問題在標識符中最後是「:」。我如何在部分ID中選擇selenium webdriver中的元素。

+0

ID是動態值嗎? – Purus

+0

是的,是的。最後一個「:」之前的字符正在改變。 – Trendo

+0

你需要更清楚地說明問題。看到這個幫助:http://stackoverflow.com/help/mcve – SiKing

回答

2

首先,您需要確認這確實是問題,並且不僅僅是頁面未完全加載,或者異步加載。我沒有看到Selenium應該關心尾隨「:」的任何特殊原因。

更新:從評論,它更可能是動態的ID的問題,但解決的辦法是一樣的兩種方式:

要找到部分ID的元素,你可以使用XPath 。如果你想找到一個div由部分ID,例如:

//div[contains(@id, 'a:2:3')] 

你不說你用的是什麼語言,但在Python,這將用於如下:

driver.find_element_by_xpath("//div[contains(@id, 'a:2:3')]") 

,並在Java中:

driver.findElement(By.xpath("//div[contains(@id, 'a:2:3')]")) 
0

假設你使用的是Java

WebElement el = driver.findElement(By.cssSelector("td[id*='a:2:3']")); 

上面的代碼獲取了TD的元素,它以a:2:3開頭,就像我們在css選擇器中使用*一樣。

XPath功能更強大,有時難以理解。 CSS選擇器很簡單。

+0

我試過這個,但我不工作。並且該元素不在iframe或者不適合。 – Trendo

+0

你的意思是不起作用?你得到任何錯誤? – Purus

+0

而語言是JAVA。對不起,我以前沒有提過它。 – Trendo

相關問題