gpt4 book ai didi

python - 点击功能不适用于投票元素

转载 作者:行者123 更新时间:2023-12-01 07:32:35 25 4
gpt4 key购买 nike

我正在Python中试验女巫 Selenium 。我正在尝试单击评论下方的向上或向下投票按钮。我正在使用 XPath 来确定特定按钮。没有发生错误,但点击后计数器没有增加。我在不同的网页上尝试过,但结果是相同的。

我的第一个方法是,我使用了 find_element_by() 函数,但之后我无法在返回的元素上使用 click() 方法。现在我正在使用 ActionChains这是我的脚本

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains

import time

driver = webdriver.Firefox()

driver.get("https://forsal.pl/praca/wynagrodzenia/artykuly/1422953,nik-w-nbp-sa-nieprawidlowosci.html")
driver.maximize_window()
wait = WebDriverWait(driver,30)
action = ActionChains(driver)

cookieButton = wait.until(EC.element_to_be_clickable((By.ID,"inforcwp-y")))
cookieButton.click()

time.sleep(5)

#wait.until(EC.visibility_of((By.XPATH,"/html/body/div[2]/section/div[2]/div[1]/div[1]/div[1]/div/div[9]/div[2]/div/ul/li[20]/p[1]/span[4]/a[2]")))

element = driver.find_element(By.XPATH,"/html/body/div[2]/section/div[2]/div[1]/div[1]/div[1]/div/div[4]/div[2]/div/ul/li[8]/p[1]/span[4]/a[2]")


element.location_once_scrolled_into_view

time.sleep(5)
action.double_click(element)

time.sleep(5)
driver.quit()

我希望在点击“投票手”后增加向上/向下投票计数请给我一些如何实现我的目标的建议

最佳答案

要在upvote 图标上click(),您需要引发WebDriverWait 以使元素可点击您可以使用以下 Locator Strategies :

  • 代码块:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC

    chrome_options = webdriver.ChromeOptions()
    chrome_options.add_argument("start-maximized")
    chrome_options.add_argument('disable-infobars')
    driver = webdriver.Chrome(options=chrome_options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    driver.get("https://forsal.pl/praca/wynagrodzenia/artykuly/1422953,nik-w-nbp-sa-nieprawidlowosci.html")
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID,"inforcwp-y"))).click()
    driver.execute_script("return arguments[0].scrollIntoView(true);", WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH,"//span[@class='headerUnderline' and contains(., 'Komentarze')]"))))
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH,"//ul[@id='commentsList']/li/p//span[@class='kf-rating']//a[@class='ratingUp']"))).click()

关于python - 点击功能不适用于投票元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57147818/

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