我想从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( “市场name.market链接”))。gettext的() TypeError:'str'对象不可调用
怎么了?
Html代码(我删除了不必要的东西,比如picters等):
<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>
答案 0 :(得分:0)
".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.")