无论如何,我可以使用ruby 中的selenium webdriver验证元素是否不存在?
如果我做
webdriver.find_element(:xpath, element)
Run Code Online (Sandbox Code Playgroud)
但是如果元素不存在,它会抛出一个错误。我需要确保元素不存在而不抛出错误。
我的意思是,有没有像assert_not
或的方法assert_element_not_present
?
我在浏览一个网站时遇到的情况是,当我点击一个按钮时,它应该下载 pdf....
我正在使用最新版本的 chrome 60、selenium 3.4、chromedriver。
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("plugins.plugins_disabled", new String[] {"Chrome PDF Viewer"});
chromePrefs.put("profile.default_content_settings.popups", 0);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new ChromeDriver(cap);
Run Code Online (Sandbox Code Playgroud)
我也使用了上面的代码,但它不起作用。
selenium google-chrome webdriver selenium-chromedriver chrome-options
如果我们创建:
ChromeDriver driver=new ChromeDriver();
Run Code Online (Sandbox Code Playgroud)
chrome 驱动程序方法将被执行。
如果我们创建:
WebDriver driver=new ChromeDriver();
Run Code Online (Sandbox Code Playgroud)
再次ChromeDriver
执行方法[根据方法覆盖]。
那为什么我们只在执行时写后一个呢?
java selenium webdriver selenium-webdriver webdriver-w3c-spec
我正在使用Selenium WebDriver,如何在单击特定按钮后检查页面是否打开?也许有人向我推荐了一些有用的资源,可供我阅读。谢谢
当我尝试在java中使用selenium webdriver运行我的第一个测试用例时,我得到以下异常.有人可以帮我解决问题.....
Starting ChromeDriver 2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f) on port 48523
Only local connections are allowed.
log4j:WARN No appenders could be found for logger (org.apache.http.client.protocol.RequestAddCookies).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Mar 29, 2018 7:34:16 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Detected dialect: OSS
Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: call function result missing 'value'
(Session info: chrome=65.0.3325.181)
(Driver info: chromedriver=2.33.506120 (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 6.3.9600 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration …
Run Code Online (Sandbox Code Playgroud) java selenium webdriver selenium-chromedriver selenium-webdriver
我试图单击一个复选框,但它一直在单击“条款和条件”链接。虽然我的 xpath(下面提到)可以在最小化的窗口上工作,但是当窗口最大化时,它无法单击复选框,因为 href(图像)出现在复选框旁边的第二行中。寻找有关单击最大化窗口上的复选框小部件的一些建议。我需要集中注意力。
有趣的是,当我将鼠标悬停在 ::before (CSS 选择器)上时,只有小部件才会突出显示。
<div class="checkbox u-mar-bot-5">
<div class="checkbox__container">
<input class="checkbox__input" type="checkbox" id="basket-contact-terms" required data-parsley-multiple="basket-contact-terms" style>
<label class="checkbox__label checkbox__label--has-link checkbox__label--small" for="basket-contact-terms" style>
::before
"I have read and agree to " <a class="text-link text-link--base text-link- small" href="/terms-conditions" target="_blank">Terms and Conditions</a>
</label>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
图片:条款和条件
我尝试了几个选项,但始终无法选中该框,而是点击了“条款和条件”链接。我一定缺少一些基本的东西。
driver.findElement(By.xpath("//label[@for='basket-contact-terms']")).click();
driver.findElement(By.xpath("//label[contains(@class,'checkbox__label checkbox__label--has-link checkbox__label--small')]")).click();
Run Code Online (Sandbox Code Playgroud)
我确实环顾四周,发现有人建议使用这个(如下),所以我尝试了但没有成功:
WebElement elem = driver.findElement(By.xpath("//div[contains(@class,'checkbox u-mar-bot-5')]"));
Actions action = new Actions(driver);
action.moveToElement(elem).click().build().perform();
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激。
一些文章建议 now本身build()
包含在内perform()
,而另一些文章则建议将build().perform()
多个操作链接在一起时使用。
我正在创建一个新的 ChromeDriver 对象,但我想向它传递一个 ChromeDriverService 对象、一个 ChromeOptions 对象和一个驱动程序的路径。但是,查看此页面,构造函数不支持通过所有这三个。我该怎么做?
我正在一个Web抓取项目中,我必须抓取一些LinkedIn信息,因此我在Python中使用Selenium,我已经在Python中安装了Selenium,但是现在我尝试使用Selenium驱动程序来控制Chrome,但显示错误上面写着“模块不可调用”。
我不知道该如何解决。请帮忙。
我的代码是:
from selenium import webdriver
driver=webdriver.chrome("/Users/Intel/Desktop/chromedriver")
from selenium import webdriver
driver=webdriver.chrome("/Users/Intel/Desktop/chromedriver")
Run Code Online (Sandbox Code Playgroud)
当我尝试执行时:
driver=webdriver.chrome("/Users/Intel/Desktop/chromedriver")
Run Code Online (Sandbox Code Playgroud)
错误显示为:
“模块”对象不可调用
python selenium webdriver web-scraping selenium-chromedriver
我看到了类似的问题,但就我而言,我的代码中甚至没有“init”函数。如何解决这个问题呢?问题出在线路上(EC.element_to_bo_clickable)
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome(executable_path="C:\Chromedriver\chromedriver.exe")
driver.implicitly_wait(1)
driver.get("https://cct-103.firebaseapp.com/")
element = WebDriverWait(driver, 1).until
(EC.element_to_be_clickable(By.CLASS_NAME, "MuiButton-label"))
element.click()
Run Code Online (Sandbox Code Playgroud)