python - 查找按钮的 xpath,在 python 和 selenium 中使用它

标签 python selenium xpath

我不确定你们中是否有人熟悉 Reddit,但是我想为一些战锤传说问题创建一个小型 Reddit 子版 block ,人们可以在其中发布问题然后回答它们。为了突出显示已回答的问题,我希望主持人帐户在问题“已解决”后自动对其进行投票,我正在尝试使用 Selenium 来实现这一点,但是我在寻找投票按钮时遇到了一些麻烦。

目前,我可以使用我的版主帐户登录,但无法按下投票按钮,我已尝试以下代码但无济于事:

driver.get("https://www.reddit.com/r/ChosenSub/ChosenThread")

time.sleep(3)

driver.find_element_by_xpath("div[@id='siteTable']/div[@id='thing_t3_XXXXXX']/div[@class='midcol unvoted']/div[@class='arrow up login-required access-required']").click

其中 XXXXX 是相关线程的 ID,但这绝对不会产生任何结果。我对Python相当熟悉,但对xPath一点办法都没有,我使用Chrome中的XPath辅助工具来获取上面的XPath,但仍然没有运气

如果有人有任何潜在的想法,请告诉我,非常感谢任何和所有的帮助。

最佳答案

考虑到评论链接中提供的内容,您可以尝试使用简化的XPath,如下所示:

driver.find_element_by_xpath("//div[@id='thing_t3_XXXXXX']//div[@aria-label='upvote']").click()

如果您需要更常见的方法来通过问题的 id 投票(如果 id 值已预定义):

def upvote_question(question_id):
    driver.find_element_by_xpath("//div[@id='%s']//div[@aria-label='upvote']" % question_id).click()

然后您可以将其与问题的 id 作为参数一起使用:

upvote_question("thing_t1_dcjl4vu")

关于python - 查找按钮的 xpath,在 python 和 selenium 中使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41701270/

相关文章:

python - 列表迭代列表如何在 python 中工作?

python - 计算机视觉 openCV2 pyautogui

python - 计算所有子矩阵有多少矩阵具有满秩

xml - 如何修剪xslt中的特殊符号? (不仅限于空格)

php - 创建具有多个属性的节点

python - 如何使用 matplotlib 制作包含多个数据的条形图

java - 如何从表中获取值?

Selenium WebDriver 如何关闭浏览器弹出窗口

java - 使用 @FindBy 与 WebDriver.findElement 之间的优点和缺点

C# 扩展 Selenium Webdriver 类