select_by_value - switch_to selenium python
Assert/VerifyElementPresent con Python y WebDriver? (5)
Puede que me confunda el cambio de Selenium a WebDriver y su documentación respectiva. En una sección sobre diseño de pruebas en la documentación se habla de usar Assert vs Verify como AssertElementPresent. Sin embargo, al pasar por el tutorial de WebDriver y comenzar con las pruebas de configuración, parece que Python no está disponible. ¿Estoy pasando por alto algo en la documentación? ¿No es esto aplicable a WebDriver?
Debe usar la siguiente función para verificar que:
def is_element_present(self, how, what):
try: self.driver.find_element(by=how, value=what)
except NoSuchElementException as e: return False
return True
Que es el predeterminado generado por Selenium IDE al exportar a código Python.
A continuación, puede afirmar el elemento de la siguiente manera:
self.assertTrue(self.is_element_present(By.ID, "footer"))
self.assertTrue(self.is_element_present(By.CSS_SELECTOR, "header.global-header"))
Tenga en cuenta que se requiere la siguiente importación para usar By
:
from selenium.webdriver.common.by import By
En Selenium RC, existen métodos de verificación / afirmación. En WebDriver, no lo hacen. Además, es importante tener en cuenta lo que verifica y afirma hacer y su papel en sus pruebas. En Selenium RC, verificar se utiliza para realizar una verificación en su prueba, ya sea en texto, elementos o lo que tenga. Afirmar, por otro lado, hará que una prueba falle y se detenga. Los beneficios y ventajas se analizan en el enlace al que hace referencia.
WebDriver no tiene métodos de verificación / afirmación por voz. Las afirmaciones se realizan en la propia prueba. Si le echas un vistazo a la respuesta de Corey, él realiza una "afirmación" en el texto de un elemento. Si el texto del elemento no es ''Dominios de ejemplo'', se generará un error de aserción, fallando efectivamente su prueba. Pero ¿qué pasa con un verificar? Bueno, como se mencionó, WebDriver no tiene uno. Pero todavía podrías realizar algo equivalente haciendo una comparación.
if element.text != u''Example Domains'':
print "Verify Failed: element text is not %r" % element.text
Así que en este caso, tu prueba no fallará. Pero una verificación todavía se llevará a cabo y se imprimirá en la salida estándar.
Así que al final, es una cuestión de lo que quieres fallar. Es más un diseño de prueba. Espero que esto ayude.
Otra forma es la siguiente:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get(''http://www.testing.com'')
element = driver.find_element_by_xpath(''xpath of the element'').text
assert element == ''Sample Text''
driver.quit()
Verificar la afirmación
driver= webdriver.Firefox()
String x =driver.findElement(By.xpath("//*[@id=''userNavLabel'']")).getText();
System.out.println(x);
//Assert.assertEquals(actual, expected)
Assert.assertEquals("Anandan Aranganath", x);
webdriver es una biblioteca para conducir navegadores. lo que desea utilizar son los métodos * find_element * para localizar elementos y luego afirmar las condiciones en contra de ellos.
por ejemplo, este código hace una afirmación sobre el contenido de un elemento:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get(''http://www.example.com'')
element = browser.find_element_by_tag_name(''h1'')
assert element.text == ''Example Domains''
browser.quit()
- Tenga en cuenta que este ejemplo es python puro con una afirmación simple. Es mejor usar un marco de prueba como la prueba de unidad de python, que tiene aserciones más poderosas.