我试图写我自己的预期条件。 我需要什么…我有一个iframe。 而且我也有一个形象。 当图像的scr会改变时,我想继续处理。 我做了什么: class url_changed_condition(object): ''' Checks whether url in iframe has changed or not ''' def __init__(self, urls): self._current_url, self._new_url = urls def __call__(self, ignored): return self._current_url != self._new_url 后来在代码中我有: def process_image(self, locator, current_url): try: WebDriverWait(self.driver, 10).until(ec.presence_of_element_located((By.TAG_NAME, u"iframe"))) iframe = self.driver.find_element(*locator) if iframe: print "Iframe found!" self.driver.switch_to_frame(iframe) WebDriverWait(self.driver, 10).until(ec.presence_of_element_located((By.XPATH, u"//div"))) # WebDriverWait(self.driver, […]
我正在使用Python绑定来运行Selenium WebDriver。 from selenium import webdriver wd = webdriver.Firefox() 我知道我可以像这样抓住一个webelement … elem = wd.find_element_by_css_selector('#my-id') 而且我知道我可以得到整个页面的源代码… wd.page_source 但无论如何要得到“元素来源”? elem.source # <– returns the HTML as a string 对于Python的seleniumwebdriver文档基本上是不存在的,我没有看到似乎启用该function的代码中的任何东西。 有关访问元素(及其子元素)的HTML的最佳方法的任何想法?
我想在一个下拉菜单上做mouseoverfunction。 当我们将鼠标hover在菜单上时,将显示新的选项。 我试图用xpath单击新的选项。 但是不能直接点击菜单。 所以,作为手动方式,我试图将鼠标hover在下拉菜单上,然后点击新的选项。 Actions action = new Actions(webdriver); WebElement we = webdriver.findElement(By.xpath("//html/body/div[13]/ul/li[4]/a")); action.moveToElement(we).build().perform();
我正在研究一个Java Selenium-WebDriver。 我补充说 driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS); 和 WebElement textbox = driver.findElement(By.id("textbox")); 因为我的应用程序需要几秒钟来加载用户界面。 所以我设置了2秒implicitwait。 但我无法find元素文本框 然后我添加Thread.sleep(2000); 现在它工作正常。 哪一个更好?
在Selenium 1.x或2.x中有没有办法滚动浏览器窗口,以便XPath标识的特定元素在浏览器中? 在Selenium中有一个焦点方法,但它似乎并没有在FireFox中物理地滚动视图。 有没有人有任何build议如何做到这一点? 我需要这个的原因是我正在testing页面上的一个元素的点击。 不幸的是,事件似乎没有工作,除非元素是可见的。 我没有控制单击元素时触发的代码,所以我不能debugging或修改它,所以,最简单的解决scheme,将项目滚动到视图中。
故事: 在StackOverflow中,我看到用户报告他们不能通过selenium WebDriver“click”命令来单击一个元素,并且可以通过执行一个脚本来通过JavaScript单击来解决这个问题。 Python中的示例: element = driver.find_element_by_id("myid") driver.execute_script("arguments[0].click();", element) WebDriverJS /量angular器中的示例: var elm = $("#myid"); browser.executeScript("arguments[0].click();", elm.getWebElement()); 问题: 为什么点击“通过JavaScript”的作品,当一个普通的WebDriver点击没有? 什么时候发生这种情况,这种解决方法(如果有的话)的缺点是什么? 我个人使用这个解决方法没有完全理解为什么我必须这样做,它可以导致什么问题。
使用Selenium WebDriver与JAVA,我试图自动化一个function,我必须打开一个新的选项卡做一些操作,并回到以前的选项卡(父)。 我用开关手柄,但它不工作。 而一个奇怪的事情是两个标签有相同的窗口句柄,由于我无法切换标签。 但是,当我尝试与不同的Firefox窗口它的作品,但选项卡不工作。 请帮助我如何切换标签。 或者我怎么可以切换标签,而不使用窗口句柄,因为窗口句柄是在我的情况下两个标签相同。 (我观察到,当你在同一窗口中打开不同的标签时,窗口句柄保持不变。)
你如何让Selenium 2.0等待页面加载?
我想在webdriver开始做东西之前确定一个元素。 我试图得到这样的工作: WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0,0,5)); wait.Until(By.Id("login")); 我主要是在努力如何设置anynomousfunction..
有没有什么API可以让我操纵Firefox中的文件下载对话框? (我想访问用户做某事时出现的那个,而不是自己发起一个)。 我想要做的就是从Selenium访问这个对话框(以及Selenium“特权模式”是否足以访问chrome接口,这是我不太确定的事情)。