我正在尝试访问屏幕截图中的“canvas”元素。下面的代码是什么意思?
driver.find_element_by_tag_name('canvas').screenshot("canvas.png") driver.find_element_by_tag_name('canvas').screenshot_as_png("chess.png")
以上两个都不起作用,我错过了什么?
rm5edbpk1#
您已经很接近了。<canvas> 标记在 <chess-board> 标记内。
<canvas>
<chess-board>
理想情况下,您需要为<canvas>元素的visibility_of_element_located()导出WebDriverWait,并且可以使用以下locator strategies之一:
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.TAG_NAME, "canvas"))).screenshot_as_png("chess.png")
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "chess-board > canvas"))).screenshot_as_png("chess.png")
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//chess-board/canvas"))).screenshot_as_png("chess.png")
*注意:必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
wtzytmuj2#
1)创建一个类。实现TestNG“ITestListener”。2)调用方法“onTestFailure”。3)添加代码以使用此方法拍摄屏幕快照。4)获取Test方法名称并使用测试名称拍摄屏幕快照。然后将其放在所需的目标文件夹中。
2条答案
按热度按时间rm5edbpk1#
您已经很接近了。
<canvas>
标记在<chess-board>
标记内。溶液
理想情况下,您需要为
<canvas>
元素的visibility_of_element_located()导出WebDriverWait,并且可以使用以下locator strategies之一:*注意:必须添加以下导入:
wtzytmuj2#
1)创建一个类。实现TestNG“ITestListener”。2)调用方法“onTestFailure”。3)添加代码以使用此方法拍摄屏幕快照。4)获取Test方法名称并使用测试名称拍摄屏幕快照。然后将其放在所需的目标文件夹中。