gpt4 book ai didi

python - 使用 selenium webdriver 单击链接

转载 作者:行者123 更新时间:2023-11-30 22:12:59 26 4
gpt4 key购买 nike

我正在尝试单击一个链接,但似乎无法使其工作。我一直点击到我需要的页面,但随后它不会点击最后一个链接。代码如下:

from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
import time
from bs4 import BeautifulSoup
import requests

import pandas as pd
import openpyxl
from password import DKpassword
#import SendKeys

beginningTime = time.time()
browser = webdriver.Chrome()
browser.get('https://www.draftkings.com/lobby')
browser.maximize_window()
time.sleep(5)
signinLink = browser.find_element_by_xpath("""//*[@id="react-mobile-home"]/section/section[2]/div[2]/div[3]/div/input""")
signinLink.click()
signinLink.send_keys("abcdefg")
signinLink.send_keys(Keys.TAB)
passwordLink = browser.find_element_by_xpath("""//*[@id="react-mobile-home"]/section/section[2]/div[2]/div[4]/div/input""")
passwordLink.send_keys(DKpassword)
passwordLink.send_keys(Keys.ENTER)
time.sleep(5)

if browser.current_url == "https://www.draftkings.com/account/sitelogin/false?returnurl=%2Flobby1":
signin = browser.find_element_by_partial_link_text("SIGN IN")
signin.click()
elif browser.current_url == "https://www.draftkings.com/lobby#/featured":

mlbLink = browser.find_element_by_partial_link_text("MLB")
mlbLink.click()
else:
print("error")

time.sleep(5)
featuredGame = browser.find_element_by_class_name("GameSetTile_tag")
featuredGame.click()
time.sleep(5)
firstContest = browser.find_element_by_partial_link_text("Enter")
firstContest.click()

我收到错误消息,表明该元素在该点不可单击...而另一个元素将收到单击。任何帮助将不胜感激。我不在乎点击哪个竞赛,只要它位于前面的代码也指示的特色页面上即可。

HTML code Webpage screenshot

最佳答案

造成这种情况的原因可能有多种。

1. 您可能必须向下滚动或可能必须执行某些操作才能使其对脚本可见。

要向下滚动,您可以使用以下代码:

browser.execute_script("window.scrollTo(0, Y)")

其中 Y 是高度(在全高清显示器上为 1080)

2. 可以存在多个 Web 元素,在这种情况下,您必须使用 dom 中的唯一元素,您可以通过右键单击 > 检查 > 在元素部分 > CTRL+F > 进行检查编写您的定位器(在您的情况下是 xpath)来检查存在多少条目。

您也可以尝试使用此 xpath :

//a[contains(text(),'Enter') and contains(@href,'/contest/draftteam') and contains(@class,'dk-btn-dark')]  

代码:

WebDriverWait(driver, 20).until(
EC.element_to_be_clickable((By.XPATH, "//a[contains(text(),'Enter') and contains(@href,'/contest/draftteam') and contains(@class,'dk-btn-dark')]"))

firstContest = browser.find_element_by_xpath("//a[contains(text(),'Enter') and contains(@href,'/contest/draftteam') and contains(@class,'dk-btn-dark')]")
firstContest.click()

关于python - 使用 selenium webdriver 单击链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50937824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com