java - 在java中使用selenium我想点击cookie的“接受”按钮
问题描述
使用 java selenium 我想点击“接受按钮”。我使用了诸如:、、、和方法之类的定位器cssselector
,但没有xpath
用。第二种方法是使用or , , 获取一个 cookie,但没有奏效。relpath
tag
click()
DeleteAllCookie
DeleteCookieByName
AddCoockie
我认为它可以是Thread.sleep
,但我不知道如何识别元素并且我不知道如何编写脚本,所以我可以点击那个“接受”。我认为 selenium java 无法识别该按钮。
解决方案
可能当您加载网页时,cookie 策略横幅还没有出现,它会在几秒钟后出现。因此,当您尝试查找该元素时,它并不存在。不过不用担心,Selenium 有一个工具可以做到这一点,你必须以编程方式等待元素出现,语法如下:
WebDriverWait w = new WebDriverWait(driver, 600);
w.until(ExpectedConditions.presenceOfElementLocated(
By.cssSelector("button[attribute='value']")));
WebElement cookieButton = driver.findElement(By.cssSelector("button[attribute='value']"));
cookieButton.click()
基本上,您创建一个新的 WebDriverWait 实例并将驱动程序和要等待的最大毫秒作为参数传递,然后使用您喜欢的选择器使用 until 方法设置等待条件。
推荐阅读
- python - 如何使用 Python 将应用程序上传到 Google Play
- laravel - 如何解决 laravel 中的类缺失问题?
- ios - SSO 功能逻辑在科尔多瓦 IOS 应用程序中不起作用
- c - 如何从图片 GTK 3 中选择像素颜色
- r - 如何使用 igraph 计算道路网络上城市的介数
- windows - Install4j 更新安装 context.isUpdateInstallation 总是返回 false
- java - 使用 reactor-grpc 去抖动类似的请求
- php - 使用关系选择时如何从 Laravel 的主表中选择特定字段
- python - 如何从线程获取异步更新到烧瓶应用程序?
- python - 如何读取空格分隔的文本以使用 networkx 创建图形