我有这样的代码来定位链接,使用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
}