在網站上,當我使用用戶名:mercury 和 PW:mercury 登錄并單擊提交按鈕時,我會轉到登錄成功頁面。然后我需要點擊左側的主頁按鈕,但我不能。
from telnetlib import EC
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome(executable_path="D:\ChromeDriverExtracted\chromedriver")
driver.get("http://demo.guru99.com/test/newtours/")
driver.maximize_window()
driver.find_element_by_name("userName").send_keys("mercury")
driver.find_element_by_name("password").send_keys("mercury")
driver.find_element_by_name("submit").click()
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[2]/table/tbody/tr/td[1]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[1]/td[2]/font/a"))).click()
uj5u.com熱心網友回復:
這是一個絕對的xpath
/html/body/div[2]/table/tbody/tr/td[1]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[1]/td[2]/font/a
請使用以下基于文本的定位器之一:
//a[text()='Home']
或者LINK_TEXT像這樣:
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.LINK_TEXT, "Home"))).click()
您還可以使用以下 CSS 選擇器:
a[href='index.php']
還有其他的點擊方式,
代碼試用1:
time.sleep(5)
driver.find_element_by_xpath("//a[text()='Home']").click()
代碼試用2:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[text()='Home']"))).click()
代碼試用3:
time.sleep(5)
button = driver.find_element_by_xpath("//a[text()='Home']")
driver.execute_script("arguments[0].click();", button)
代碼試用4:
time.sleep(5)
button = driver.find_element_by_xpath("//a[text()='Home']")
ActionChains(driver).move_to_element(button).click().perform()
進口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
uj5u.com熱心網友回復:
要單擊文本為Home的元素,您需要為element_to_be_clickable()引入WebDriverWait,您可以使用以下任一定位器策略:
使用LINK_TEXT:
WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.LINK_TEXT, "Home"))).click()使用CSS_SELECTOR:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.btn.signin-btn.sbLoginBtn > span.btf-text"))).click()使用XPATH:
WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, "//a[text()='Home']"))).click()注意:您必須添加以下匯入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/376125.html
