Vários métodos comumente usados no dramaturgo (no modo síncrono)
uma breve introdução
No ambiente Python, o Playwright fornece uma API síncrona relativamente completa e os desenvolvedores podem optar por usar a API assíncrona ou a API síncrona de acordo com suas preferências. A seguir, uma introdução aos métodos de sincronização comuns do Playwright.
método específico
1.page.goto(url[, options])
Como a API assíncrona, esse método é usado para carregar e pular para a URL especificada. Ele aceita um parâmetro de URL e um parâmetro de opções opcionais. Os parâmetros de opção comumente usados incluem:
wait_until
: Especifica o estado de carregamento da página, o padrão éload
. Pode ser definido paradomcontentloaded
ounetworkidle0
etc.
Aqui está um exemplo usando page.goto
o método :
page.goto('https://www.example.com')
page.goto('https://www.example.com', wait_until='networkidle0') # 等待网络空闲状态
2.page.wait_for_selector(selector[, options])
Este método é usado para esperar que os elementos correspondentes ao seletor CSS especificado apareçam na página. Ele aceita um parâmetro de seletor e parâmetros de opção opcionais. Os parâmetros de opção comumente usados incluem:
visible
: Especifica que o elemento deve estar visível, o padrão éFalse
.hidden
: Especifica que o elemento deve estar oculto, o padrão éFalse
.
Aqui está um exemplo usando page.wait_for_selector
o método :
page.wait_for_selector('#myButton')
page.wait_for_selector('.my-div', visible=True) # 等待可见的元素
3.page.wait_for_load_state(state=None[, timeout=30000])
Semelhante à API assíncrona, este método é utilizado para aguardar o status de carregamento da página, onde state
o parâmetro pode ser um dos seguintes valores:
load
: A página está totalmente carregada.domcontentloaded
: O conteúdo DOM foi carregado.networkidle0
: Quando a rede está ociosa.networkidle2
: O número de conexões de rede é estável e excede 500 milissegundos.
Aqui está um exemplo usando page.wait_for_load_state
o método :
page.goto('https://www.example.com')
page.wait_for_load_state('networkidle0') # 等待网络空闲状态
4.page.click(selector[, options])
Assim como a API assíncrona, este método simula um evento click no elemento, aceitando um parâmetro seletor e um parâmetro opcional de opções. Os parâmetros de opção comumente usados incluem:
button
: O botão que simula um clique do mouse, o padrão éleft
.click_count
: O número de cliques simulados, o padrão é 1.
Aqui está um exemplo usando page.click
o método :
page.click('#myButton')
5.page.type(selector, text, delay=None)
Semelhante à API assíncrona, esse método é usado para inserir conteúdo de texto no elemento especificado. Aceita um parâmetro seletor e o conteúdo do texto de entrada e também pode incluir os seguintes parâmetros de opções opcionais:
delay
: Simula o tempo de atraso em milissegundos para cada entrada de caractere.
Aqui está um exemplo usando page.type
o método :
page.type('#myInput', 'Hello World!')
6.page.evaluate(pageFunction, *args)
Semelhante à API assíncrona, esse método executa a função JavaScript especificada no contexto da página e retorna o valor de retorno da função. Ele pode executar código JavaScript personalizado no navegador. Aqui está um exemplo usando page.evaluate
o método :
result = page.evaluate('() => { return 1 + 2; }')
7.page.wait_for_function(pageFunction[, timeout=None, interval=None], *args)
Semelhante à API assíncrona, esse método continua a executar a função JavaScript especificada até que a função retorne True
. Ele pode ser usado para aguardar a exibição de conteúdo alterado dinamicamente na página ou para aguardar a conclusão de uma operação assíncrona. Aqui está um exemplo usando page.wait_for_function
o método :
page.wait_for_function('() => document.querySelector("#myButton").disabled === false')
8.page.screenshot(path=None, *, full_page=True, clip=None, quality=None, omit_background=False)
Semelhante à API assíncrona, esse método é usado para fazer uma captura de tela da página atual e salvá-la no arquivo especificado. Ele aceita um parâmetro de opção opcional, os parâmetros de opção comumente usados incluem:
path
: Especifique o caminho e o nome do arquivo para salvar a captura de tela.full_page
: especifica se a captura de tela contém a página inteira, o padrão éTrue
.clip
: especifique o tamanho e a posição da captura de tela.quality
: especifica a qualidade da captura de tela.omit_background
: especifica se a cor de fundo deve ser ignorada.
Aqui está um exemplo usando page.screenshot
o método :
page.screenshot(path='example.png', full_page=True)
page.screenshot(clip={
'x': 0, 'y': 0, 'width': 800, 'height': 600})
Resumir
Os acima são vários métodos comumente usados pelo Playwright no ambiente Python. Os desenvolvedores podem escolher o método que mais lhes convém de acordo com suas necessidades.