2016-11-02 114 views
0

我是新來的Javascript和硒,所以請忍受我!硒和Javascript,無法找到firstchild元素

我將如何找到元素「接受」並點擊它?

enter image description here

我已經嘗試了幾個組合:

var buttons =[]; 
buttons = driver.findElement(By.className("eula-button")) (I cannot call buttons.length with this method to loop through elements) 

driver.findElement(By.xpath(".//button[contains(text(),'Accept')]")).click(); 

感謝您的幫助!

+1

檢查按鈕是一個iframe內。 – Grasshopper

+0

xpath的第二個選項給你哪個錯誤?它看起來像是正確的。 – Ievgen

回答

0

嘗試使用XPath這樣的事情 -

var button = driver.findElement(By.xpath("//button[@class='eula-button']")); 
+1

該按鈕有兩個類的值。您的選擇器不會選取元素。 – Grasshopper

+0

^在屏幕截圖中有兩個按鈕都具有完全相同的類,因此它不會是唯一的(但它是第一個...至少我們可以看到)。 – JeffC

+0

感謝您的幫助!需要添加一個driver.wait,然後它的工作! – spidee76

0

您使用的XPath選擇會工作得很好。

driver.findElement(By.xpath(".//button[contains(text(),'Accept')]")).click(); 

另外,您可以使用索引與CSS,假設的「接受」按鈕會一直「拒絕」之前出現。

driver.findElement(By.cssSelector(".eula-button-container button.eula-button:nth-of-type(1)") 

考慮到您使用XPath第一選擇不工作,我猜想,按鈕是一個iframe中,如在由@Grasshopper評論中指出。

之前與按鈕的互動,你將不得不切換到框架,然後執行findElement

+0

感謝您的幫助!你是對的xpath選擇器是好的。我需要添加一個driver.wait,然後它工作! – spidee76

+0

很高興聽到!繼續並單擊複選標記以接受答案 – sircapsalot