[英]Can't get element link with Selenium in Python
我正在嘗試單擊該項目,但似乎無法從此 div 中的元素獲取鏈接。 我覺得我什么都試過了。
這是 HTML 代碼的示例:
<div class="tile css-yrcab6-Tile e1yt6rrx0" data-testid="product-tile">
<a style="color:black" href="/product-name">...</a> #what I want to click
</div>
這是我嘗試單擊的幾種方法:
#1
item_div = item.find_element_by_tag_name('div')
item_link = item_div.find_element_by_tag_name('a')
#this returns NoElement for element with tag 'a'
#2
item_link = item.find_element_by_css_selector('div.tile a')
#again, returns no element
我想使用 for 循環單擊頁面上的每個項目
這是到目前為止的代碼:
def do_items(self):
for page in range(self.maxPages):
maincontent = driver.find_element_by_id('main-content')
browsegrid = maincontent.find_element_by_class_name('browse-grid')
items_on_page = browsegrid.find_elements_by_tag_name('div')
for item in items_on_page:
item_div = item.find_element_by_tag_name('div')
item_link = item_div.find_element_by_tag_name('a')
item_link.click()
time.sleep(5)
break
break #breaks for the sake of testing, i only want to click the first item to see it works.
我對 selenium 很陌生,所以我不完全明白為什么它找不到元素。 根據我的代碼,我就在上面..
//div[@data-testid='product-tile']/a
一個簡單的 xpath 用於單擊。
現在,您可以通過抓取所有 a 標簽並使用 driver.get() 或單擊每個元素來執行此操作。 如果它轉到另一個頁面,您將使用 driver.switch 到另一個 window,然后是 driver.close()。 如果沒有,那么您可以使用 driver.back() 重復抓取元素,然后使用它的索引 click()。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.