使用“data-testid”属性通过Selenium获取元素
我正在尝试获取HTML中每个元素的数据,这些元素都有一个叫data-testid的属性,具体内容如下:
<div data-testid="sl.explore.card-description"</div>
我写的代码如下,但它并没有正常工作:
desc_list = []
desc = driver.find_elements(By.XPATH, "//div[@data-testid='sl.explore.card-description']")
for i, cp in enumerate(desc):
splitted = desc[i].text.split('\n');
data_desc = str(splitted[0:1])
desc_list.append(data_desc);
df_desc = pd.DataFrame(desc_list)
1 个回答
0
你能给我们这个网页元素的链接吗?或者你可以把整个元素发给我们吗?看起来语法不太对。不过我可以给你一些建议。
要找到带有特定文本的元素:
driver.findElement(By.xpath("//button[@data-testid='s1.explore.card-description']/span[contains(., 'Some text here')]"));
假设接下来你会对这个元素使用 click() 方法,这样的话,你最好先设置一个等待,确保这个元素可以被点击。
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@data-testid='s1.explore.card-description']/span[contains(., ., 'Some text here')]"))).click();