我试图在instagram上为下面的按钮获取xpath,从而制作一个自动化的unfollowing软件。在此处输入图像描述
我发现它是这样的:
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")
硒不会"像";属性中的空白或空白。
我建议使用CSS选择器并使用*=
来查找包含以下内容的文本:
driver.find_element_by_CSS('//div[class*="qF0y9"][class*="Igw0E"]').click();
避免在元素的属性中使用空格、下划线(_(和连字符(-(。
我认为元素上的类会发生变化,因为您的类与我的不匹配。这里有一个更通用的XPath;下面的";按钮
//div//button[div[text()='Following']
当在测试中使用它时,我发现它会立即失败,除非我用明确的等待条件包围它。
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div//button[div[text()='Following']"))).click();
当Instagram停止向我提供连接问题时,我会发布我的示例。