我的 **Web Scraping** 用例面临着有趣的问题。我需要获取最新的 **Google map 评论**。
我想按最新日期对评论进行排序。我观看的所有教程都是英文的,但在我的母语中,用户界面与这些教程中的不同。
我可以使用 **Selenium** 和按钮的 **XPATH** 单击按钮,但我不知道如何从可见的下拉菜单中更改排序选项。
# Click the sort button
driver.find_element_by_xpath('//*[@id="pane"]/div/div[1]/div/div/div[2]/div[8]/button').click()
select_by_visible_text() 和 select_by_value() 对我不起作用,因为我无法选择按钮并且不适用于 div。
我正在使用的网址:Link
查看我的 UI 更改为立陶宛语言。
最佳答案
首先,您必须学习如何创建正确的 XPath 定位器。
长 XPath 表达式太脆弱。
“对评论进行排序”按钮定位器而不是
//*[@id="pane"]/div/div[1]/div/div/div[2]/div[8]/button
可以
//button[@aria-label='对评论进行排序']
或
//按钮[@data-value='排序']
单击此按钮后,要按最新日期对评论进行排序,您可以单击此元素://li[@data-index='1']
所以基本上这会起作用:
driver.find_element_by_xpath("//li[@data-index='1']").click()
但是由于您需要在单击“排序”按钮后等待对话框打开,因此您需要利用预期条件等待,如下所示:
wait = WebDriverWait(driver, 20)
wait.until(EC.visibility_of_element_located((By.XPATH, "//li[@data-index='1']"))).click()
为此,您将需要以下导入:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
关于python - 使用 Selenium 更改 Google map 评论排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70589658/