我想从 ebay 等网站收集信息(名称)并将其附加到列表中。但我有一个问题。我的代码:
for a in driver.find_elements_by_id("scroll"):
name = a.find_element(By.CLASS_NAME(".market-name.market-link")).getText()
mylist.append(name)
print(mylist)
问题:
name = a.find_element(By.CLASS_NAME(".market-name.market-link")).getText() TypeError: 'str' 对象不可调用
怎么了?
Html 代码(我删除了不必要的东西,比如图片等):
<div class="featured-item col-sxs-12 col-xs-6 col-sm-6 col-md-4 col-lg-3 center-block app_730_2 item_17511241 has-wear scanned">
<div>
<a class="market-name market-link" href="=shop_view_item&item=17511241">
Happy
</a>
<div class="item-amount" onclick="showGraphFromId(17511241)">
$0.04
</div>
<button class="btn btn-orange" type="button" onclick="addToCart(17511241, 730, 4)">
Add to Cart
</button>
</div>
</div>
".market-name.market-link"
是 CSS 选择器,而不是类名。所以,你可以通过改变解决这个问题By.CLASS_NAME
,以By.CSS_SELECTOR
By.CLASS_NAME
是第一个参数,find_element
它不是一个方法,它是一个值。第二个参数是一个表达式。请参阅下面的代码。
try:
name = WebDriverWait(browser, 15).until(
EC.presence_of_element_located((By.CSS_SELECTOR, ".market-name.market-link"))
).text
except:
print("Can't find the text.")
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句