嗨,我正在尝试使用 selenium 中的 python 单击页面的按钮https://walmart.wd5.myworkdayjobs.com/login,我尝试了 XPATH 和 id。使用点击,send_keys(Keys.enter),提交但仍然没有点击。谁能帮帮我吗?
options = Options()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(executable_path=r"C:\Users\user\Downloads\chromedriver_win32 (1)\chromedriver.exe,chrome_options=options")
# Load webpage
driver.get(url)
driver.maximize_window() # For maximizing window
driver.implicitly_wait(20) # gives an implicit wait for 20 seconds
# Find first name field and fill it out
email = driver.find_element(By.XPATH,"//*[@id='input-4']").send_keys("[email protected]");
passw = driver.find_element(By.XPATH,"//*[@id='input-5']").send_keys("1233@1102");
sub = driver.find_element(By.XPATH,"//*[@id='input-5']").send_keys(Keys.TAB + Keys.ENTER)
首先,登录上述门户网站的正确网址是: https://walmart.wd5.myworkdayjobs.com/zh-CN/WalmartExternal/login
现在,你是对的,当我们尝试使用
Sign In
或我会说任何其他自动化工具进行自动化登录时,它不会让我们仅通过单击 Selenium
按钮登录。
我注意到,当我们尝试在
click()
按钮上应用 Sign In
时,它确实执行了点击,但之后没有任何反应。
我的朋友,在使用不同的东西多次尝试之后,我能够为您带来解决方案。
这里是解决方案:
import time
from selenium.webdriver import Chrome, ChromeOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
import selenium.webdriver.support.expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains
options = ChromeOptions()
options.add_argument('--start-maximized')
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_argument("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36")
driver = Chrome(options=options)
wait = WebDriverWait(driver, 10)
url = "https://walmart.wd5.myworkdayjobs.com/en-US/WalmartExternal/login"
driver.get(url)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, 'input[data-automation-id="email"]')))
email = driver.find_element(By.CSS_SELECTOR, 'input[data-automation-id="email"]')
email.send_keys('your_username')
password = driver.find_element(By.CSS_SELECTOR, 'input[data-automation-id="password"]')
password.send_keys('your_password')
submit = driver.find_element(By.CSS_SELECTOR, 'div[aria-label="Sign In"]')
hover = ActionChains(driver).move_to_element(submit)
hover.click().perform()
time.sleep(10)
注意事项:
Sign In
框出现在页面上。user-agent
传递给Chrome选项。ActionChains
成功执行点击进入登录配置文件。一个简单的click()
在这里不起作用。希望能解决你的问题。干杯!