By.XPATH Selenium 的自动点击问题
By.XPATH problem in an automatic click with Selenium
我想自动点击点赞的蓝色标志(拇指在里面的那个),以打开已点赞的人列表。我指的是这个蓝色的小标志:
在这个问题中,我只想关注这个小请求,这个小点击。我认为我做对了,但肯定有问题。我使用了 By.XPATH
.,更准确地说://*[@id="jsc_c_z"]/span[1]/span/span/div
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="jsc_c_z"]/span[1]/span/span/div'))).click()
注意:我注意到此页面上的 ID 和范围看起来混淆不清,因此它们不一定每次都相同。所以也许我认为 id = "jsc_c_z" 是不可靠的。您可能需要求助于在目标元素 div.
上使用属性的 aria-labeld
这是 link 我想打开 https://www.facebook.com/FranzKafkaAuthor/posts/3985338151528881。
重要提示:您必须使用 Facebook 登录名输入,但不想这样做的人会 post 截图
希望有人能帮助我。谢谢
嘿,你可以像这样尝试 Xpath,
//*[@id="jsc_c_z"]/span[3]/div/img
因为图片标签有 link 而不是 div 标签
如果它不起作用,请尝试在找到 div.
时添加 arial 标签
此页面中的 ID 和跨度看起来很可疑,因此不一定每次都相同。我认为 id="jsc_c_z"
不可靠。您可能需要求助于在目标 div
元素上使用 aria-label
属性。我无法对此进行测试,但 xpath 将类似于;
//div[starts-with(@aria-label,'Mi piace:')]
当然,如果您运行使用不同语言的用户,则需要更改该文本。
我自己解决了。解决方案是:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@class='j1lvzwm4']"))).click()
我想自动点击点赞的蓝色标志(拇指在里面的那个),以打开已点赞的人列表。我指的是这个蓝色的小标志:
在这个问题中,我只想关注这个小请求,这个小点击。我认为我做对了,但肯定有问题。我使用了 By.XPATH
.,更准确地说://*[@id="jsc_c_z"]/span[1]/span/span/div
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="jsc_c_z"]/span[1]/span/span/div'))).click()
注意:我注意到此页面上的 ID 和范围看起来混淆不清,因此它们不一定每次都相同。所以也许我认为 id = "jsc_c_z" 是不可靠的。您可能需要求助于在目标元素 div.
上使用属性的 aria-labeld这是 link 我想打开 https://www.facebook.com/FranzKafkaAuthor/posts/3985338151528881。
重要提示:您必须使用 Facebook 登录名输入,但不想这样做的人会 post 截图
希望有人能帮助我。谢谢
嘿,你可以像这样尝试 Xpath,
//*[@id="jsc_c_z"]/span[3]/div/img
因为图片标签有 link 而不是 div 标签 如果它不起作用,请尝试在找到 div.
时添加 arial 标签此页面中的 ID 和跨度看起来很可疑,因此不一定每次都相同。我认为 id="jsc_c_z"
不可靠。您可能需要求助于在目标 div
元素上使用 aria-label
属性。我无法对此进行测试,但 xpath 将类似于;
//div[starts-with(@aria-label,'Mi piace:')]
当然,如果您运行使用不同语言的用户,则需要更改该文本。
我自己解决了。解决方案是:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@class='j1lvzwm4']"))).click()