【问题标题】:Facing issue with selenium when I try to use "By.CSS_SELECTOR"当我尝试使用“By.CSS_SELECTOR”时遇到硒问题
【发布时间】:2022-10-01 11:58:27
【问题描述】:

我正在尝试构建一个脚本,当满足某些条件时,它可以单击 Facebook 群组类别“加入”按钮。

该脚本已经能够使用 selenium 导航“https://www.facebook.com/search/groups/?q=nature_lover”路径。

图片:https://i.stack.imgur.com/3QJhy.png

导航到该路径后,我使用此代码处理每个组组件数据。

all_group_elements = self.driver.find_elements(By.CSS_SELECTOR, \"div[role=article]\")

for group_element in group_elements:
   
   group_name = str(element.text.split(\'\\n\')[0])
   group_button = str(element.text.split(\'\\n\')[-1])

   if group_button==\"Join\":
       group_button_target = f\"Join Group {group_name}\"
   if group_button==\"Follow Group\":
       group_button_target = f\"Follow Group {group_name}\"

   # I used this code to target and click the \"join\" button. 
   self.driver.find_element(By.CSS_SELECTOR, f\"div[aria-label={group_button_target}]\").click()

我也在脚本中使用了“WebDriverWait”。这里有什么问题?

标签: python selenium selenium-webdriver


【解决方案1】:

你的问题是f"div[aria-label={group_button_target}]"

这相当于"div[aria-label=Join Group NAME]"

这是一个问题,因为属性的值包含空格和如果有空格,则需要在值周围加上引号.

例如:

坏:'TAG[ATTRIBUTE=SOME VALUE]'

好:'TAG[ATTRIBUTE="SOME VALUE"]'

如果值包含空格,则这些引号很重要。您可能希望将该行更改为:

self.driver.find_element(By.CSS_SELECTOR, f'div[aria-label="{group_button_target}"]').click()

【讨论】:

  • 有效! :) 谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-07
  • 1970-01-01
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
相关资源
最近更新 更多