如何解决如何使用Selenium和Python在https://www.nike.com/register中填写电子邮件地址字段
我正在尝试使用硒在耐克网站https://www.nike.com/register上填写注册表,但是它无法使用xpath或id查找元素。
这是我到目前为止尝试过的:
chrome_options = Options()
chrome_options.add_argument("--incognito")
chrome_options.add_argument("start-maximized")
driver=webdriver.Chrome('/Users/cameron/Desktop/untitled folder/chromedriver')
driver.get('https://www.nike.com/gb/membership')
main_window = driver.current_window_handle
driver.find_element_by_xpath('//*[@id="69dcecd3-722e-42c0-aa82-358c4160ae8d"]/div/div/div[2]/a').click()
WebDriverWait(driver,5)
driver.find_element_by_xpath('/html/body/div[2]/div[3]/div[4]/form/div[1]/input').click()
在浏览网站时工作正常,但在尝试填写注册表单时找不到元素
解决方法
要向电子邮件地址字段发送字符序列,您必须为element_to_be_clickable()
引出WebDriverWait,并且您可以使用跟随Locator Strategies:
-
使用
CSS_SELECTOR
:driver.get('https://www.nike.com/gb/membership') WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"a[aria-label='Join Us'][href='https://www.nike.com/register']"))).click() WebDriverWait(driver,"input[name='emailAddress']"))).send_keys("Cameroon08@stackoverflow.com")
-
使用
XPATH
:driver.get('https://www.chegg.com/auth?action=login&redirect=https%3A%2F%2Fwww.chegg.com%2F') WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//a[@aria-label='Join Us' and @href='https://www.nike.com/register']"))).click() WebDriverWait(driver,"//input[@name='emailAddress']"))).send_keys("Cameroon08@stackoverflow.com")
-
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
-
浏览器快照:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。