我越來越困惑,試圖找到一種方法在網頁瀏覽器窗口中發送左鍵點擊。我使用Selenium selenium-2.44.0
和Python 2.7。我的最終目標是能夠點擊窗口中的某些區域,但現在我只想確保我可以點擊。我認爲點擊鏈接所在的區域是一個好主意,因爲那樣我就可以驗證點擊的確發生了(即,我將被帶到另一個html頁面)。用selenium 2(Python綁定)在網頁瀏覽器中點擊任意位置
所有先決條件都得到滿足,我能夠啓動瀏覽器並訪問和操作各種Web元素。根據我在幫助中找到的內容,應該使用move_by_offset方法將鼠標光標移動到某個方向。然而,當我運行代碼時,不會發生點擊(或者它發生,但url鏈接沒有被點擊並且沒有新的頁面打開)。我甚至無法驗證點擊是否發生。例如,在正常的瀏覽器會話中單擊註銷鏈接時,會發生註銷操作。
...
homeLink = driver.find_element_by_link_text("Home")
homeLink.click() #clicking on the Home button and mouse cursor should? stay here
print homeLink.size, homeLink.location
helpLink = driver.find_element_by_link_text("Help")
print helpLink.size, helpLink.location
action = webdriver.common.action_chains.ActionChains(driver)
action.move_by_offset(150,0) #move 150 pixels to the right to access Help link
action.click()
action.perform()
下面是我正在使用的網頁中區域的屏幕截圖。
的大小和元素的位置都印如下:
{'width': 39, 'height': 16} {'y': 47, 'x': 341}
{'width': 30, 'height': 16} {'y': 47, 'x': 457}
的頁面背後的HTML代碼如下,如果它是值得考慮的。
<a href="/web/">Home</a>
|
<a href="/web/Account/LogOff">Logout</a>
|
<a href="#" onclick="HelpFile.open();">Help</a>
我知道,我可以通過尋找在很多方面的元素訪問該鏈接,但我試圖執行一個特定位置的點擊現在用的是鏈接元素只是爲了驗證點擊真的發生了。
如何執行點擊?
您是如何計算150像素偏移量以訪問幫助鏈接的? – shri046
@ shri046,我找到了Home鏈接的x座標和幫助鏈接之間的區別(在問題主體print element中)。我也通過使用MeasureIt插件來驗證Firefox。 –
根據我的經驗,點擊總是發生在元素的中間(中間)。因此'homeLink.click()'可能會在home鏈接元素的x +(width/2)處有鼠標指針。在計算需要移至的結果偏移量時,您可能必須考慮這一點。 – shri046