[英]How to click on an element based on its coordinates with selenium webdriver
因此,我們正在開發的Web應用程序具有TV / PC模式,並且我正在測試在這兩種模式之間進行轉換的能力。 `
def pc_to_tv(self):
pc_to_tv = self.driver.find_element_by_xpath(
'html/body/div[1]/div/topbar/header/div[2]/div[2]/div[1]/button[1]')
pc_to_tv.click()
def tv_to_pc(self):
tv_to_pc = self.driver.find_element_by_xpath(
'html/body/div[1]/div/topbar/header/div[2]/div[2]/div[1]/button[2]')
tv_to_pc.click()`
問題是,當我從PC切換到電視時,屏幕“放大”,使按鈕出現在沒有縮放的位置。 因此,我無法使用“ tv_to_pc”方法單擊按鈕,“原因是單擊實際按鈕時,它將單擊按鈕應位於的位置。
因此,我找到的解決方案是單擊帶有坐標的按鈕,這樣,我實際上將單擊我想要的位置,而不是像我一樣單擊不可單擊的位置。
問題是,我不知道該怎么做,因此需要幫助。
我建議您使用JavaScriptExecutor
單擊按鈕。 無論它在頁面上的什么位置,它都會單擊它。 有關更多信息,請參見如何在Python網絡驅動程序中執行javascript和其他問題。 通用格式為
element = driver.find_element_by_id("someId")
driver.execute_script("arguments[0].click();", element)
另外...您不想使用這樣的XPath。 任何始於HTML標記或深度超過幾個級別的XPath都將非常脆弱。 在selenium xpaths上進行一些谷歌搜索,並閱讀一些指南以獲取更多信息。
嘗試moveToElement然后執行單擊
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
new Actions(driver).moveToElement(element, x, y).click().perform();
x是xoffset y是yoffset
請注意,如果您使用Javascript進行點擊,則它不會是原生點擊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.