Selenium-WebDriver提供WebDriver API,用于控制不同编程语言的浏览器(“语言绑定”)。使用此标记时,还要为正在使用的编程语言添加标记。
如何使用 Selenium WebDriver 迭代日期选择器中的日期
我正在尝试使用 Python 3.12.3 中的 Selenium 操作 Omio 上的日期选择器。我希望从今天开始,然后选择第二天,依此类推。 不幸的是,出发日期字段被读取...
我正在尝试使用硒来单击链接然后退出。我是编程新手,但我看过一些有关这方面的教程,但仍然无法点击进入页面。我的代码位于...
我正在尝试从网页下载图像 blob。 Blob url 如下所示: blob:https://example.com/43bdcaf9-7d30-4b80-9306-7e411533b960 可以下载图像并将其转换为 Base64 文本,如果...
我们可以在子类中设置一个线程局部变量并在Java中的父类中访问它吗?
我有一个自动化项目,有两个测试类(子类)和一个测试库(父类)。在 TestBase 中,我定义了一个线程局部属性,如下所示。 受保护的ThreadLocal 我有一个自动化项目,有两个测试类(子类)和一个测试库(父类)。在 TestBase 中,我定义了一个 threadlocal 属性,如下所示。 protected ThreadLocal<ITestContext> iTestContextThreadLocal = new ThreadLocal<>(); 在每个子类中,我将一个名为“feature”的属性设置到该 ThreadLocal 属性中。示例 Child 类如下所示。 public class RestTests extends TestBase{ @BeforeClass(alwaysRun = true) public void init(ITestContext iTestContext) { iTestContext.setAttribute("feature", "Sample - RestTests1"); iTestContextThreadLocal.set(iTestContext); String feature = iTestContextThreadLocal.get().getAttribute("feature").toString(); } @Test public void testScenario1(){ //Automation Code } } 在 TestBase 中,我有一个“AfterMethod”,在其中我尝试访问子类的 before 方法中设置的值。 @AfterMethod(alwaysRun = true) public void test() { try { ITestContext iTestContext = iTestContextThreadLocal.get(); String feature = iTestContext.getAttribute("feature").toString(); System.out.println("***** ThreadLocalAttribute: " + feature); //Rest of the code } } catch (Exception e) { e.printStackTrace(); } finally { // Clean up the ThreadLocal variables after method execution iTestContextThreadLocal.remove(); } } 我面临的问题是 - 一个类中的并行测试执行(在类和方法中)功能集作为输出提供。 举个例子,如果我将“Sample - RestTests1”和“Sample - RestTests2”设置为子类中的功能,当我尝试使用以下代码在 TestBase afterMethod 中访问它们时,仅给出一个类的功能 iTestContext.getAttribute("feature").toString(); 如何解决这个问题并通过 TestBase 的 AfterMethod 获取每个类中的功能集? 我尝试过改变注释的顺序,并尝试了互联网上的解决方案。但目前还没有找到解决办法。 非常感谢任何帮助。 预先感谢。 例如,如果您阅读类似主题的this问题,您会发现 TestNG 的每个测试类仅创建一个实例的策略存在问题,以及如果测试应在以下环境中运行则如何重置状态平行。 我想在你的情况下,你不应该使用 init 方法 @BeforeClass,而应该使用 @BeforeMethod,或者也许 @BeforeTest(不记得确切的名称)。
我正在使用python自动打开工业相机的网页,尝试登录查看。我在网上找到了示例代码,但由于某种未知的原因我无法让它工作。她...
def new_task(logg): #===Создает заявку в демо2=== > 驱动程序 = webdriver.Remote( 命令执行器=执行器, 期望的能力=能力) E 类型错误:WebD...
我正在尝试针对通过检查一些标头进行身份验证的网站编写测试。 在其他框架中,可以向驱动程序添加标头,但我在 Selenium 中看不到类似的内容...
未捕获的 DOMException:无法在“CommandLineAPI”上执行“$”:不是有效的选择器
我正在使用 selenium 为我的网页编写自动化 UI 测试。 我正在测试的网页上有一个元素: << input type="checkbox" id="screening_questions[0].multiple_choice[0]-
selenium webdriver 导入选项给我一个 ImportError
链接到我试图在我的代码中实现的原始代码。 使用带扩展名的 Python(.crx 文件)运行 Selenium WebDriver 从硒导入网络驱动程序 来自 selenium.webdriver.chrome。
无法在Python和Selenium中获取HTML中元素的值
我正在尝试使用下面 html 中的 class="lnsTableCell lnsTableCell--left" 将 DE(德国) 和 IN(印度) 打印到列表中,以便稍后创建 CSV。 我正在尝试使用下面 html 中的 DE(GERMANY) and IN(INDIA) 将 class="lnsTableCell lnsTableCell--left" 打印到列表中,以便稍后创建 CSV。 <div role="gridcell" tabindex="0" data-test-subj="dataGridRowCell" class="euiDataGridRowCell euiDataGridRowCell--stripe euiDataGridRowCell--firstColumn" style="position: absolute; left: 0px; top: 73px; height: 34px; width: 100px;"> <div class="euiDataGridRowCell__expandFlex"> <div class="euiDataGridRowCell__expandContent"> <div data-datagrid-cellcontent="true" class="euiDataGridRowCell__truncate"> <div data-test-subj="lnsTableCellContent" class="lnsTableCell lnsTableCell--left">IN(INDIA)</div> </div><p class="euiScreenReaderOnly">Row: 2; Column: 1</p> </div> ... <div role="gridcell" tabindex="0" data-test-subj="dataGridRowCell" class="euiDataGridRowCell euiDataGridRowCell--stripe euiDataGridRowCell--firstColumn" style="position: absolute; left: 0px; top: 73px; height: 34px; width: 100px;"> <div class="euiDataGridRowCell__expandFlex"> <div class="euiDataGridRowCell__expandContent"> <div data-datagrid-cellcontent="true" class="euiDataGridRowCell__truncate"> <div data-test-subj="lnsTableCellContent" class="lnsTableCell lnsTableCell--left">DE(GERMANY)</div> </div><p class="euiScreenReaderOnly">Row: 3; Column: 1</p> </div> 这是我的代码: def capture_data_1(): url_scrape = "https://kibana-xxyyzzz.com/app/dashboards#/view/8d3382c0-49cd-11ed-b4e3-3d78365d2c94?_g=(filters:!(),refreshInterval:(pause:!t,value:0),time:(from:now-1w,to:now))" chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-dev-shm-usage') # moves to /tmp chrome_options.add_argument('--disable-gpu') driver = webdriver.Chrome(options=chrome_options) driver.get(kibana_eu_prd.login_url) wait = WebDriverWait(driver, 20) wait.until(EC.element_to_be_clickable((By.NAME, "username"))).send_keys(kibana_user_id) wait.until(EC.element_to_be_clickable((By.NAME, "password"))).send_keys(kibana_user_pass) submit_button = wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "euiButton__text"))) submit_button.click() time.sleep(5) driver.get(url_scrape) # countries = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.lnsTableCell.lnsTableCell--left"))) # Works but only print INDIA countries = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="i19971251-9fb6-11ef-b33e-c91f069ea574"]/div/div/div/div[2]/div/div/div/div'))) print(countries.text) for country in countries: print(country.text) capture_data_1() 我收到的错误是: Traceback (most recent call last): File "data_scrape.py", line 89, in capture_data_1 countries = wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="i19971251-9fb6-11ef-b33e-c91f069ea574"]/div/div/div/div[2]/div/div/div/div'))) File "/var/lib/jenkins/.local/lib/python3.8/site-packages/selenium/webdriver/support/wait.py", line 105, in until raise TimeoutException(message, screen, stacktrace) selenium.common.exceptions.TimeoutException: Message: Stacktrace: #0 0x5609b1b7c10a <unknown> #1 0x5609b1697460 <unknown> #2 0x5609b16e3f96 <unknown> #3 0x5609b16e4221 <unknown> #4 0x5609b17295d4 <unknown> #5 0x5609b170803d <unknown> #6 0x5609b1726af6 <unknown> #7 0x5609b1707db3 <unknown> #8 0x5609b16d6c10 <unknown> #9 0x5609b16d7bee <unknown> #10 0x5609b1b4839b <unknown> #11 0x5609b1b4c338 <unknown> #12 0x5609b1b35ebc <unknown> #13 0x5609b1b4ceb7 <unknown> #14 0x5609b1b1b10f <unknown> #15 0x5609b1b6a828 <unknown> #16 0x5609b1b6a9f0 <unknown> #17 0x5609b1b7af86 <unknown> #18 0x7f40f2386609 start_thread During handling of the above exception, another exception occurred: Traceback (most recent call last): File "data_scrape.py", line 109, in <module> capture_data_1() File "data_scrape.py", line 104, in capture_data_1 raise Exception(error) Exception: Message: Stacktrace: #0 0x5609b1b7c10a <unknown> #1 0x5609b1697460 <unknown> #2 0x5609b16e3f96 <unknown> #3 0x5609b16e4221 <unknown> #4 0x5609b17295d4 <unknown> #5 0x5609b170803d <unknown> #6 0x5609b1726af6 <unknown> #7 0x5609b1707db3 <unknown> #8 0x5609b16d6c10 <unknown> #9 0x5609b16d7bee <unknown> #10 0x5609b1b4839b <unknown> #11 0x5609b1b4c338 <unknown> #12 0x5609b1b35ebc <unknown> #13 0x5609b1b4ceb7 <unknown> #14 0x5609b1b1b10f <unknown> #15 0x5609b1b6a828 <unknown> #16 0x5609b1b6a9f0 <unknown> #17 0x5609b1b7af86 <unknown> #18 0x7f40f2386609 start_thread 我尝试了以下方法,但仅导致其他类型的错误: # countries = driver.find_element(By.CLASS_NAME, "lnsTableCell.lnsTableCell--left") # countries = driver.find_elements(By.XPATH, '//*[@id="i19971251-9fb6-11ef-b33e-c91f069ea574"]/div/div/div/div[2]/div/div/div/div') # countries = driver.find_elements(By.CSS_SELECTOR, ".lnsTableCell.lnsTableCell--left") # print(wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.lnsTableCell.lnsTableCell--left"))).text) 如果您在查询中指定的国家/地区只有 2 个,那么您可以使用索引或文本等。 例如索引: # Germany "(//div[@data-test-subj='lnsTableCellContent'])[2]" #India "//div[@data-test-subj='lnsTableCellContent'])[1]" 相反,如果列表中有很多国家,那么您可以循环浏览它们。 ls_countries = driver.find_element(By.Xpath, "//div[@data-test-subj='lnsTableCellContent']") listed_countries = [] if len(ls_countries) > 0: for country in ls_countries: txt_country = country.text listed_coutries.append(txt_country) print(listed_countries) 希望这有帮助!
Crontab 调度程序无法使用 selenium 运行 safari
我正在尝试使用 selenium 打开 safari 浏览器,还使用 crontab 来安排它。 当我通过代码或终端手动运行代码时,它工作正常,但是当我使用 crontab 安排它时,它会...
我正在尝试用Python编写一个脚本,使用selenium从该网站检索一些信息。 Cloudfare 似乎阻止了该脚本,因为它是一个机器人。这里我发布部分代码...
未检测到的 chrome 驱动程序 - chromedriver 和 chrome 版本不匹配
我使用 unDetected_chromedriver 运行以下代码: 将 unDetected_chromedriver 导入为 uc 驱动程序 = uc.Chrome() 我收到以下错误: selenium.common.exceptions.
我尝试使用 Selenium 单击一个在页面上加载更多新闻的按钮,但我总是遇到 org.openqa.selenium.ElementClickInterceptedException 或 org.openqa.selenium.TimeoutExcep...
Selenium 单击链接并打开一个新窗口。但同时它有时会关闭初始窗口,尽管我需要它打开。看起来当它无法接收 session_id_ 时就会这样做...
python 3.14 - selenium 找不到按钮元素
我正在尝试通过点击按钮订阅此 reddit 页面。 我已在检查模式下打开页面,找到按钮并将其 XPATH 复制到下面的代码中。但代码说它不能...
我尝试用php编写一个程序,在使用curl连接并使用$_COOKIE功能时从网站上抓取cookie。 原来我只能像这样读取 php cookie,但我...
即使 element.isdisplayed 返回 true,Selenium 给我“NoSuchElementException”是否正常
我正在按照本页面上的教程练习 Selenium。我正在使用最新版本的 Selenium (4.26)、TestNG (7.10.2 和 Java JDK (Java 23) 以及 IntellJ 社区版....
如何使用 chrome 选项将无头 chrome 的窗口大小设置为全屏?
执行 UI 测试时,出现错误,selenium 不支持 chromedriver 自动调整窗口大小,导致测试失败。 有没有办法使用 chrome-options 进行设置
我正在尝试通过点击按钮订阅此 reddit 页面。 我已在检查模式下打开页面,找到按钮并将其 XPATH 复制到下面的代码中。 但代码说它不能...