[英]Can't locate element in selenium. XPath, css selectors, I've tried everything
Impressions <div class="ellipsis _1ha3" data-hover="tooltip" data-tooltip-display="overflow" data-tooltip-text-direction="auto">11,483</div> Clicks <div class="ellipsis _1ha3" data-hover="tooltip" data-tooltip-display="overflow" data-tooltip-text-direction="auto">379</div>
我目前陷入困境。 我正在运行两段相同的代码以从fb广告管理器中提取指标,尽管最上面的代码可以正常工作,但是第二个代码(一个试图找到点击次数的代码)似乎找不到我想要的元素。 我已经尝试了xpath,css_selectors,所有方法,但似乎仍然找不到我找不到该元素的原因。 任何帮助,将不胜感激。 谢谢!
impressions = browser.find_element_by_xpath('//*[@id="ads_pe_container"]/div[2]/div[2]/div[4]/div/div/div/div/div[2]/div/div/div[1]/div[1]/div/div[2]/div/div/div[1]/div[4]/div/div/div[2]/div/div[5]/div/div/div/div[1]')
impressions_text = impressions.text
impressions_attribute_value = impressions.get_attribute('value')
impressions = ('{0}'.format(impressions_text))
print(impressions)
clicks = browser.find_element_by_xpath('//*[@id="ads_pe_container"]/div[2]/div[2]/div[4]/div/div/div/div/div[2]/div/div/div[1]/div/div/div[2]/div/div/div[1]/div[4]/div/div/div[2]/div/div[7]/div/div/div/div[1]')
clicks_text = clicks.text
clicks_attribute_value = clicks.get_attribute('value')
clicks = ('{0}'.format(clicks_text))
print(clicks)
我期望#click像#impressions一样返回一个数字,但似乎找不到该元素。 我什至尝试切换帧都无济于事。 #impressions位于DOM窗口中,所以这不是问题。 任何帮助,将不胜感激。
您应始终尝试修剪修剪器,使其尽可能薄。
作为选择器,您应该使用:
该选择器将匹配完全相同的className:
xpath('//div[@class="ellipsis _1ha3"][x]')
要么
该选择器将匹配包含以下字符的元素类:
xpath('//div[contains(@class, "ellipsis _1ha3")][x]')
必须将出现的变量放在完整的xpath之后:
xpath('(//div[contains(@class, "ellipsis _1ha3")])[x]')
要么
xpath( ' (//div[@class='ellipsis _1ha3'])[x]')
您可以在Chrome的控制台中尝试xpath,如下所述:
$x("(//div[contains(@class,'ellipsis _1ha3')])[x]")
如果必须精确匹配类名,则:
$x("(//div[@class='ellipsis _1ha3'])[x]")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.