我使用Selenium和Python来获取一些关于Chrome扩展的数据。我正在尝试获取位于this page的特定扩展的用户数。我正在使用以下代码:
from selenium import webdriver
from selenium.common.exceptions import ElementNotVisibleException, NoSuchElementException
import time
def create_browser(first_page=None):
print "Starting"
browser = webdriver.Chrome('/home/user/ChromeDriver/chromedriver')
if first_page:
browser.get(first_page);
print "Done."
return browser
def wait_find_element_by_xpath(driver, path):
counter = 0
while counter < 7:
try:
elem = driver.find_element_by_xpath(path)
break
except NoSuchElementException:
time.sleep(1)
counter += 1
elem = None
return elem
URL = 'https://chrome.google.com/webstore/detail/id-vault/jlljbiieciifehccmokcpnmlklpaimpa/details'
browser = create_browser()
browser.get(URL)
time.sleep(7)
#Get number of users
userStr = wait_find_element_by_xpath(browser, './/span[@class="webstore-f-g-He"]')
#print "\n\n\n No. of Users: "
#print userStr
#print userStr.text
#print "\n\n\n-----"
noOfUserStr = userStr.text.replace(" users", "")
noOfUsers = noOfUserStr.replace(",", "")
users = int(noOfUsers)
我的问题是我无法获得特定页面的用户数。相反,我得到了错误:ValueError: invalid literal for int() with base 10: ''
我觉得这很奇怪,因为代码可以很好地与其他扩展配合使用。此外,即使您单击“查看源”(右键单击->检查元素),也可以看到源中的用户数(在“发件人”字段之后),但我仍然无法获取该值。谁能帮我解决这个问题吗?在
问题是,对于这个特定的扩展,由于“from”url的长度,用户数量是不可见的。硒通常只作用于文档中的可见元素。
我建议通过javascript执行获取此值:
相关问题 更多 >
编程相关推荐