2016-01-21 35 views
1

我使用硒對Stockpair WebsiteRSelenium不能訪問DOM

s = remoteDriver(remoteServerAddr = "localhost", port = 4444, browserName = "chrome") 
s$open() 
url <- "https://www.stockpair.com/sp#trading/page" 
s$navigate(url) 
dir <- s$findElement("css selector", "div.stockSelectionButton.left") 
dir$clickElement() 

我得到的錯誤

Error: Summary: StaleElementReference 
    Detail: An element command failed because the referenced element is no longer attached to the DOM. 
    class: org.openqa.selenium.StaleElementReferenceException 

我研究它發生,如果由一個異步過程中的DOM變化。然而,我使用運行chrome.exe的Selenium進行了測試,並且DOM不會更改,並且在加載頁面後th元素仍然存在。

會有其他原因嗎?

回答

2

這是一個非常動態的站點,它定期更新,改變DOM。

通過JavaScript單擊元素

s$executeScript("arguments[0].click();", list(dir)) 

另見:

+0

感謝,但你的代碼,我得到錯誤:摘要:不明錯誤 \t詳細信息:處理命令時發生未知的服務器端錯誤。 \t class:org.openqa.selenium.remote.JsonException 此外:有28個警告(使用警告()來查看它們) – user670186

+0

這個工程:s $ executeScript(「$('div.stockSelectionButton.left')。點擊();「,args = list()) – user670186

+0

@ user670186啊,忘記打電話了,請重新測試。謝謝。 – alecxe