如何快速发现元素是否存在于页面中或是否使用剧作家



我有这样的代码来定位链接,使用python剧作家:

nfo_link = page.locator('the xpath').get_attribute('href')
nfo_link = 'https://somesite.com' + nfo_link
logger_play.info('nfo_link: %s', nfo_link)

如果存在,它可以正常工作,但如果不存在,则会出现错误:

waiting for selector

我试过了:

if (page.locator('the xpath').get_attribute('href')) == None:
pass
else:
nfo_link = page.locator('the xpath').get_attribute('href')

和其他代码,但似乎都不起作用,我想,如果发现很好,如果不继续前进,有人能给我指正确的路吗?

您可以使用其中一个选项:

const element = await page.$$("text='element'");
if (element) {
// ...
}

const element = await page.$$("text='element'");
if (element.length) {
// ...
}

await expect(page.locator(".MyClass")).toHaveCount(0)

您可以使用query_selector来验证元素是否与您的选择器匹配。如果没有元素与选择器匹配,则返回null

使用

page.query_selector('selector') != None

page.query_selector('selector') is not None

或者只是

page.query_selector('selector')

您可以将其封装在try...except块中,这样就不会出现阻塞超时错误。

try:
// some selector that might fail
page.locator("whatever")
except:
print("Not today")
// Move on...

根据特定需求,您有几个选项;如果你的元素没有隐藏,你可以使用:

page.locator("your_locator").isVisible();

如果它是隐藏的,你可以尝试。

try{
page.waitForSelector("your_locator",{timeout:5000});}
catch(){
//element is not found do next
}

最新更新