Selenium Chrome WebDriver如何实现水平滚动
Chrome Web驱动程序的限制仅加载正在查看的网页内容.我的网站有很长的水平表.我有XPATH,可以提取表的列标题,该列的伸展比屏幕宽度还要多.在Chrome Dev Tool Console中,如果我运行XPath $ X(myxpathgoeshere),我将获得所有标题,包括未查看的标题(可以让您滚动查看全部的标题).所以我知道我的xpath是正确的.但是在代码中,当我使用Selenium Webdriver访问它时,它仅给出当前视图中的标头名.我遇到了Chrome Webdriver Google Group页面上的各种帖子,用户提到了此限制,并且回答它是为了不解决它.因此,无论如何,现在我正在尝试使用JavaScript水平滚动,然后再次通过XPath进行Findelement,以查看右侧的元素是否已加载.但是由于某种奇怪的原因,我似乎无法水平滚动.我正在使用C#JavaScript executor. IJavaScriptExecutor js = (IJavaS
0 2024-04-23
编程技术问答社区
剧作家"元素没有附加到dom上"
我正在尝试使用剧作家(.NET)刮擦网站.该网站看起来好像是在2000年代初(以怪异模式运行)编写的,我遇到了一个我似乎找不到解决方案的问题. 我的目标是检查复选框.我可以使用 选择input元素 var input = await page.QuerySelectorAsync("inputSelector") 成功选择了该元素,但是当尝试运行await input.CheckAsync()时,我会得到错误Element is not attached to the DOM.我没有注意到会导致此元素的任何异常.为什么会发生此错误? 更新 我通过运行await page.ClickAsync("inputSelector")来工作以检查框.这是针对我的目的,但不能解释为什么如果以其他方式完成错误,所以我仍然想知道为什么发生错误. 解决方案 您的页面可能正在重新创建DOM.要克服您可以使用 locator playwright的功能 var locato
12 2024-04-20
编程技术问答社区
在 selenium 中等待特定 URL
我需要使用Chrome浏览器中的Selenium在网站自动化中等待特定URL. 用户将在我们的网站上进行在线付款.从我们的网站用户重定向到付款网关.用户完成付款后,网关将重定向到我们的网站.我想从网关到我们网站的通知重定向. 我得到了一个等待网页中"特定ID"的示例,这是VB.NET代码 driver.Url = "http://gmail.com" Dim wait As New WebDriverWait(driver, TimeSpan.FromSeconds(10)) wait.Until(Of IWebElement)(Function(d) d.FindElement(By.Id("next"))) 此页面上的" gmail.com"导航到" gmail.com",并在该页面上等待ID"下一步".相反,我只想在特定URL加载时继续代码. 我该怎么做? 请帮助我. 解决方案 我不确定您正在使用哪种语言,但
2 2024-04-19
编程技术问答社区
IE Web自动化-如何使用Excel VBA/XML宏程序从组合框中自动选择值
我是VBA的初学者,我未能从我的Excel电子表格中自动选择"国家名称"或"列表"框.我的代码仅输入国家名称,但不选择它. 如何更改此代码,以便可以从我的Excel电子表格中选择国家名称,然后在Web组合框中选择相同的循环.护照号码,DOB和国籍在我的代码上是正确的.如果您可以手动使用,则可以找到我需要在电子表格中捕获的工作许可证号. Chrome Inspect Element屏幕截图附有此处. 我的代码如下: Sub MOL() Dim IE As New SHDocVw.InternetExplorer Dim Doc As MSHTML.HTMLDocument Dim Buttons As MSHTML.IHTMLElementCollection Dim Button As MSHTML.IHTMLElement Dim HTMLInput As MSHTML.IHTMLElement Dim Tags As MSH
4 2024-04-04
编程技术问答社区
打破Protractor .filter()或.map()的循环。
我正在使用量角和黄瓜框架;如何脱离.Filter或.map循环?如果我找到比赛,我不想继续进一步迭代! Page.prototype.getElementByKey = function (key) { var foundElement = null; return someElement.all(by.css('.someClass')).map(function (rawItem, index) { var itemObject = new ItemObjectClass(rawItem); return itemObject.getItemKey().then(function (foundItemKey) { var matched = String(foundItemKey).trim() === String(key).trim(); console.log(' Matche
2 2024-04-04
编程技术问答社区
如何获得一个网页中的特定框架并检索其内容
我想访问以下URL 的翻译结果 http://translate.google.com/translate?hl = en&sl = en&tl = en&tl = ar&u=http%3A%3A%2F%2f%2f%2f%2fp.saltycrane.saltycrane.com2fblog; %2fhow-escape-eccape-encent-encode-url-python%2f 翻译显示在两个帧的底部内容框架中.我有兴趣仅检索底部内容框架以获取翻译 python的硒允许我们通过Web自动化获取页面内容: browser.get('http://translate.google.com/#en/ar/'+hurl) 所需的框架是一个iframe:
2 2024-04-04
编程技术问答社区
在Watir中访问一个没有属性的元素
使用watir,有没有一种方法可以访问没有属性的元素? 例如: Text 我想避免使用XPath,但是如果那是唯一的酷途径. 解决方案 首先忽略具有标签的非Watir问题,或者请求开发人员(或您自己)的唯一属性,您始终可以通过其父元素或索引访问一个元素. 例如: 文本 @browser.div(:name => "content").span(:index => 1) #this is the first span element inside this div 您可以在不使用XPATH的情况下完成许多唯一的元素,但是您可以完成许多唯一的元素.当然,您只需要一个独特的父元素即可到达该特定的子元素,然后将其从中努力. div(:how => what).table(:how => what).td(:how => what).span(:how => what).text 另一个示例,假设它是页面上的 nth 跨度:
10 2024-03-21
编程技术问答社区
在Selenium Web自动化中,元素不可交互异常
在以下代码中,我无法在密码字段中发送密码键,我尝试单击字段,清除字段并发送键.但是现在在任何方法中工作.但是如果我调试和测试 ,它可以正常工作 public class TestMail { protected static WebDriver driver; protected static String result; @BeforeClass public static void setup() { System.setProperty("webdriver.gecko.driver","D:\\geckodriver.exe"); driver = new FirefoxDriver(); driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); } @Test void Testcase1() {
6 2024-03-21
编程技术问答社区
无头的互联网浏览器?
我想做以下操作.登录网站,单击几个特定链接,然后单击下载链接.我想将其作为Windows上的计划任务或Linux上的CRON作业.我对使用的语言并不挑剔,但是如果可能的话,我希望在屏幕上放一个浏览器窗口. 解决方案 以下是我知道的无头浏览器列表: htmlunit - java.自定义浏览器引擎.有限的JavaScript支持/DOM模拟.开源. Ghost - 仅是Python.基于Webkit.完整的JavaScript支持.开源. twill - python/命令行.自定义浏览器引擎.没有JavaScript.开源. phantomjs - 命令行/所有平台.基于Webkit.完整的JavaScript支持.开源. awesomium - c ++/.网络/所有平台.基于铬.完整的JavaScript支持.商业/免费. simplebrowser - .net 4/c#.自定义浏览器引擎.没有JavaScript支持.开源. zombiejs node.
2 2024-03-21
编程技术问答社区
如何用Python和Mechanize登录一个网站
我正在尝试登录网站 http://www.magickartenmarkt.de 区域( https://www.magickartenmarkt.de/?mainpage=showwants ).我看到了其他例子,但我不明白为什么我的方法不起作用.我确定了第一种方法的正确表格,但尚不清楚它是否有效. 在第二种方法中,RETURING网页向我表明我无法访问成员区域. 我会为任何帮助而高兴. import urllib2 import cookielib import urllib import requests import mechanize from mechanize._opener import urlopen from mechanize._form import ParseResponse USERNAME = 'Test' PASSWORD = 'bla123' URL = "http://www.magickartenmarkt.de" # fi
6 2024-03-19
编程技术问答社区
使用Internetexplorer对象,等待ajax响应的正确方法是什么?
我尝试将文件上传到SharePoint库,我的代码无法正确检测IE是否仍在等待AJAX​​响应.这样做的正确方法是什么? [void] [System.Reflection.Assembly]::LoadWithPartialName("'Microsoft.VisualBasic") [void] [System.Reflection.Assembly]::LoadWithPartialName("'System.Windows.Forms") function wait4IE($ie=$global:ie){ while ($ie.busy -or $ie.readystate -lt 4){start-sleep -milliseconds 200} } $global:ie=new-object -com "internetexplorer.application" $ie.visible=$true [Microsoft.VisualBasic.Interac
10 2024-01-21
编程技术问答社区
如何在出现find_element_by_link_text: NoSuchElement 异常?
这个问题已经一遍又一遍地提出 - 并且在尝试所有我仍然无法弄清楚的所有骇客. 我尝试将隐式_WAIT增加到30(甚至将其增加到100) - 但它行不通. 用例 - :我正在尝试创建一个列表,该列表将填充页面中的所有项目在这里作为基本情况 - 我打算将其绑定到我已经拥有的scrapy的迷你模块中(页面)具有类似的网络元素)爬行链接 - 因此,从本质上讲,我已经完成了整个管道,我已经完成了. ###My source code - generated via Selenium IDE, exported to a Python webdriver and manipulated a little later ### from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import Select from s
6 2023-12-23
编程技术问答社区
windows计算机上网站的自动登录脚本?
我看到有人有一个文件(我想一个批处理文件).单击批处理文件时,他能够登录到多个站点. (也许是使用VB完成的.) 我在Google上寻找这样的脚本,但没有发现任何有用的脚本. 我知道一些C ++和UNIX(也是一些HTML和JavaScript).我不知道它是否可以使用这些语言在Windows机器上完成,但是即使可以完成,我认为与VB或C ##或其他一些高级语言相比,这将很困难. 我学会了如何使用批处理文件中包含的基本Windows批处理命令打开多个站点: start http://www.gmail.com start http://stackoverflow.com 但我仍然无法弄清楚如何实际单击批处理文件会帮助我登录到网站,而无需输入用户名和密码. 我需要开始学习Visual Basic,.NET或Windows Batch编程吗? 还有一件事:我还可以使用它登录到远程桌面吗? 解决方案 从"自动登录"一词中,我想安全性(密码保护)并
8 2023-12-05
编程技术问答社区
Selenium Webdriver vs Mechanize
我有兴趣以某些形式的我经常使用的网站自动化重复数据输入.到目前为止,我查找的工具将以无头的方式为此提供支持,这可能是Selenium Webdriver和机械化. 我的问题是,使用曾经与另一个相比有根本的技术差异吗?硒主要用于测试.我还注意到有些人使用它来确切地做我要寻找的事情,这是自动化数据输入的.在这种情况下,测试成为第二好. 是否有理由不使用硒来使我想做的过度机械化?这无关紧要,这两个工具都可以工作吗? 我不是问哪个更好,我问哪个是工作的正确工具.也许我不了解每个工具目的背后的前提. 解决方案 这些是完全不同的工具,它们在网络剪接,Web自动化,自动数据提取范围中有些"交叉". mechanize是一种成熟且广泛使用的工具,用于编程Web浏览,并具有许多内置功能,例如Cookie Handing,浏览器历史记录,表单.这里要理解的关键是 mechanize.Browser不是真正的浏览器,它无法执行和理解JavaScript,它不能发送异步请求以形成
12 2023-12-01
编程技术问答社区
为什么在Python中selenium webdriver的switch_to_window()方法不起作用?
我正在尝试使用Python Selenium Webdriver切换到新打开的窗口.该代码以前工作正常,但是现在显示错误.令人惊讶的是,python未识别switch_to_window()方法,没有声明要去. def process_ebl_statements(self, account_number): current_window = self.driver.current_window_handle all_windows = self.driver.window_handles print("Current window: ", current_window) print("All windows: ", all_windows) number_of_windows = len(all_windows) self.driver.switch_to_window(all_windows[number_of_windows
4 2023-11-30
编程技术问答社区
来自C++的网络自动化
我们需要从C ++应用程序(登录应用程序,执行一些操作,注销)进行一些相当复杂的Web自动化,但是性能确实很重要,因此我们正在研究选项. 有没有一种方法可以直接从C ++驱动WebKit或其他 Headless 引擎,而无需在介于两者之间的更多层(例如Selenium+WebDriver+Web Driver+网络通信+...)?也许? 如果选项1不可能,那么从C ++? 运行WebDriver的最佳方法是什么 解决方案 您应该研究 phantomjs (一个无头的WebKit浏览器),它带有 ghostdriver ,这是phantomjs的WebDriver协议实现. 您仍然需要使用 WebDriver语言绑定,我不知道它在C ++中的任何语言绑定中 最坏的情况,您可以随时在Python中创建WebDriver脚本,并从C ++应用程序调用Python脚本. 其他解决方案 您可以使用 Selenium Server 和 jsonwirepro
12 2023-11-30
编程技术问答社区
用vba从网页上的下拉列表中选择数值
on 任何帮助将不胜感激. Sub Test() strURL = "https://visa.kdmid.ru/PetitionChoice.aspx" With ie .Visible = True .navigate strURL While .Busy DoEvents Wend Set html = .document 'Country where you will apply for visa. Set ctY = html.getElementById("ctl00$phBody$Country") For i = 1 To ctY.Options.Length If ctY.Options(i).Text = "NETHERLANDS" Then ctY.selectedIndex = i Exit For
4 2023-11-17
编程技术问答社区
如何用vba代码在新的会话中打开Internet explorer?
我正在努力完成此操作,从几个月开始,如何编码VBA在新会话中打开Internet Explorer,我有一个使用自动化同时打开它们的应用程序,我使用了 set ie=new InternetExplorer ,但它在旧会话中打开IE,我想为每个登录工作打开新的会话,请帮助我,我为此搜索了很多东西,但最终得到了任何解决方案. 这是我的代码 Function GetIE() As InternetExplorer Dim WScript Dim objShellWindows Set objShell = CreateObject("Shell.Application") Set objShellWindows = objShell.Windows Set WScript = CreateObject("WScript.Shell") Dim ieStarted ieStarted = False Dim ieError ieErro
6 2023-11-15
编程技术问答社区
powershell:如何点击一个 "提交类型 "的输入
使用PowerShell进行Web UI自动化.出现一个例外:Invoke方法失败了,因为[System .__ comObject]不包含"单击"方法. 可以单击提交类型输入? 我使用了getElementsbytagname getElementsbyclassName getElementsByname,不起作用. 有人可以帮助我吗? PowerShell代码如下: # open the specified web site and commit the key $ie = new-object -com "InternetExplorer.Application" $ie.navigate("http://gitlab.alibaba-inc.com/keys/new") $ie.visible = $true while($ie.busy) {sleep 1} $doc = $ie.document # commit the button $c