找不到 selenium 的“关注”按钮 instagram 的 xpath

发布于 2025-01-09 14:46:14 字数 1294 浏览 0 评论 0原文

我尝试获取 Instagram 上以下按钮的 xpath,以实现自动取消关注软功能。 在此处输入图像描述

我发现它就像这样:

driver.find_element_by_xpath('//div[@class="qF0y9 Igw0E   rBNOH   YBx95   ybXk5 _4EzTm soMvl "]').click()

但我想遍历所有,,以下“按钮,但就像这样卡在第一个按钮上! 这是我的代码:

fBody  = driver.find_element_by_xpath("//div[@class='isgrP']")  
for i in range(1, 1500):
            driver.find_element_by_xpath('//div[@class="             qF0y9          Igw0E   rBNOH          YBx95   ybXk5    _4EzTm                      soMvl                                                                                        "]').click()
            #driver.find_element_by_xpath("//*[text()='Following']").click()
            print("Am apasat follow")
            sleep(5)
            
            driver.find_element_by_xpath('//button[@class="aOOlW -Cab_   "]').click()
            sleep(5)
            driver.execute_script('arguments[0].scrollTop = arguments[0].scrollTop + arguments[0].offsetHeight;', fBody)
            print("Ma bag la somn 1 min")
            sleep(2)
print("salut")

I try to get the xpath for the following button on instagram making an automate unfollowing soft. enter image description here

I found it just like this:

driver.find_element_by_xpath('//div[@class="qF0y9 Igw0E   rBNOH   YBx95   ybXk5 _4EzTm soMvl "]').click()

But i want to itterate over all ,,Following" Buttons , but like this is stuck at the first one!
This is my Code:

fBody  = driver.find_element_by_xpath("//div[@class='isgrP']")  
for i in range(1, 1500):
            driver.find_element_by_xpath('//div[@class="             qF0y9          Igw0E   rBNOH          YBx95   ybXk5    _4EzTm                      soMvl                                                                                        "]').click()
            #driver.find_element_by_xpath("//*[text()='Following']").click()
            print("Am apasat follow")
            sleep(5)
            
            driver.find_element_by_xpath('//button[@class="aOOlW -Cab_   "]').click()
            sleep(5)
            driver.execute_script('arguments[0].scrollTop = arguments[0].scrollTop + arguments[0].offsetHeight;', fBody)
            print("Ma bag la somn 1 min")
            sleep(2)
print("salut")

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

想念有你 2025-01-16 14:46:14

Selenium 不“喜欢”属性中的空白或空白。

我建议使用 CSS 选择器并使用 *= 来查找包含以下内容的文本:

driver.find_element_by_CSS('//div[class*="qF0y9"][class*="Igw0E"]').click();

避免使用空格或空格以及下划线 (_) 和连字符 (-) 作为元素的属性。

Selenium does Not "like" empty or white spaces in the attributes.

I suggest using a CSS selector and using *= in order to find text contains:

driver.find_element_by_CSS('//div[class*="qF0y9"][class*="Igw0E"]').click();

Avoid using white or empty spaces and, underscores (_) and hyphens (-) for the element's attributes.

青衫儰鉨ミ守葔 2025-01-16 14:46:14

我认为元素的类别会发生变化,因为您的类别与我的不匹配。这是一个与“以下”按钮匹配的更通用的 XPath。

//div//button[div[text()='Following']

当在测试中使用它时,我发现它立即失败,除非我用明确的等待条件包围它。

wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div//button[div[text()='Following']"))).click();

我将发布我的示例当 Instagram 不再出现连接问题时。

I think the classes on the elements change as yours do not match with mine. Here is a more generic XPath that matches the "following" button.

//div//button[div[text()='Following']

When using this in a test I found it instantly failing unless I surrounded it with an explicit wait condition.

wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div//button[div[text()='Following']"))).click();

Ill post my example when Instagram stops giving me connectivity issues.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文