如果使用双斜线2次,这意味着什么XPath.假如我使用XPath像
//div[@id='add']//span[@id=addone']
Run Code Online (Sandbox Code Playgroud) 如何使用Java中的selenium web驱动程序模拟打印屏幕按钮
此致,Vignesh
我正在使用Selenium/python自动向下滚动社交媒体网站并抓取帖子.我目前正在提取所有的文字在一个"打" 后滚动一定的次数(下面的代码),而是我想只提取每个滚动后的新装入的文字.
例如,如果页面最初包含文本"A,B,C",那么在第一次滚动后它显示"D,E,F",我想要存储"A,B,C",然后滚动,然后存储"D,E,F"等.
我想要提取的具体项目是帖子的日期和消息文本,可以分别使用css选择器'.message-date'和'.message-body'(例如dates = driver.find_elements_by_css_selector('.message-date'))获得.
任何人都可以建议如何在每次滚动后只提取新加载的文本?
这是我当前的代码(在我完成滚动后提取所有日期/消息):
from selenium import webdriver
import sys
import time
from selenium.webdriver.common.keys import Keys
#load website to scrape
driver = webdriver.PhantomJS()
driver.get("https://stocktwits.com/symbol/USDJPY?q=%24USDjpy")
#Scroll the webpage
ScrollNumber=3 #max scrolls
print(str(ScrollNumber)+ " scrolldown will be done.")
for i in range(1,ScrollNumber): #scroll down X times
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(3) #Delay between 2 scrolls down to be sure the page loaded
## I WANT TO SAVE/STORE ANY NEWLY …Run Code Online (Sandbox Code Playgroud) 我enum只有部分列表的自定义值
public enum MyEnum
{
FirstValue,
SecondValue,
ThirdValue,
ForthValue = 1,
FifthValue = 2
}
Run Code Online (Sandbox Code Playgroud)
当我试着strina name = (MyEnum)2;名字的时候ThirdValue.
但是当我改变enum为
public enum MyEnum
{
FirstValue = 3,
SecondValue,
ThirdValue,
ForthValue = 1,
FifthValue = 2
}
Run Code Online (Sandbox Code Playgroud)
在strina name = (MyEnum)2;名字中FifthValue.
编译器(我正在使用Visual Studio 2012)是否仅在第一个具有自定义值时初始化自定义值?
如果ThirdValue在第一个例子中得到默认值2,那么怎么没有错误FifthValue = 2呢?
嗨我试图在Mac PC上设置eclipse与eclipse.当我下载ChromeDriver并将其放在以下文件夹中时:
System.setProperty("webdriver.chrome.driver","/Users/george/Downloads/chromedriver");
WebDriver driver = new ChromeDriver();
Run Code Online (Sandbox Code Playgroud)
我运行代码.然后我得到以下异常:
在端口33424上启动ChromeDriver 2.21.371459(36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4)仅允许本地连接.线程"main"中的异常org.openqa.selenium.WebDriverException:未知错误:找不到Chrome二进制文件(驱动程序信息:chromedriver = 2.21.371459(36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4),platform = Mac OS X 10.10.5 x86_64)(警告:服务器没做不提供任何堆栈跟踪信息)命令持续时间或超时:312毫秒构建信息:版本:'2.53.0',修订版:'35ae25b',时间:'2016-03-15 17:00:58'系统信息:主机:' Georges-Mac-mini.local',ip:'192.168.1.2',os.name:'Mac OS X',os.arch:'x86_64',os.version:'10 .10.5',java.version:' 1.7.0_25'驱动信息:org.openqa.selenium.chrome.ChromeDriver
所以我假设一些二进制文件丢失了?请注意,我经常使用Chrome浏览器作为我的浏览器..我不知道这是否相关.我的电脑是mac.我已阅读ChromeDriver网站,但我不明白究竟要做什么.我在导航到有点奇怪的路径时遇到问题:"Google Drive"而不是"Google/Drive"或"cd Chrome\Apps.localized /"或"/ Applications/Google\Chrome.app/Contents/MacOS"等路径/谷歌浏览器".我的意思是,wt ?? 那些来回斜线??? 我刚刚在Linux上做了一些事情,但在这里..我陷入困境和困惑在Windows上更容易的东西..你刚刚在本地下载了一个.exe文件,指向驱动程序,该文件的选项,一切都很顺利.我无法找到有关mac特定的信息.
有人可以帮忙吗?
谢谢
我有一个接口存储,它有两个方法getName()和getAddres(),我有一个类Market实现存储这是我的代码:
public interface Stores {
public String getName();
public String getAddress();
}
Run Code Online (Sandbox Code Playgroud)
具体课程:
public class Market implements Stores {
private String name;
private String address;
private int size;
public Market(String name, String address, int size) {
this.name = name;
this.address = address;
this.size = size;
}
@Override
public String getName() {
return name;
}
@Override
public String getAddress() {
return address;
}
public int getSize() {
return size;
}
}
Run Code Online (Sandbox Code Playgroud)
我在构造函数中遇到关于this.name = name,this.address = address和this.size = size的错误,说"无法访问商店".有什么想法吗?
我正在努力理解为什么这是可能的.我是一个java新手,不明白你如何拥有类型为Example的任何类型(列表或集合)的集合.我正在努力理解这个的递归性质以及使用它的原因.
class Example {
private Set<Example> setExample;
//....
}
Run Code Online (Sandbox Code Playgroud) 使用Python 3.
假设:
<whatever>
text
<subchild>
other
</subchild>
</whatever>
Run Code Online (Sandbox Code Playgroud)
如果我这样做:
elem = driver.find_element_by_xpath("//whatever")
elem.text包含"text other"
如果我这样做:
elem = driver.find_element_by_xpath("//whatever/text()[normalize-space()]")
elem不是Webelement.
我如何继续只抓"文本"(而不是"其他")?
Id est:仅抓取直接节点中的文本,而不抓取子节点.
更新:
原始HTML是:
<div class="border-ashes the-code text-center">
VIVEGRPN
<span class="cursor"></span>
<button class="btn btn-ashes zclip" data-clipboard-target=".the-code" data-coupon-code="VklWRUdSUE4=">
<span class="r">Hen, la.</span>
</div>
Run Code Online (Sandbox Code Playgroud) 我有一个 html 表格。我需要用硒获取 td 元素的文本。
html结构:
<table id="myTable">
<tbody>
<tr>
<td>
<b>Success: </b>
You have transferred 1,000.00 USD to DIST2. Your balance is now 19,979,000.00 USD. ref: 2017011806292760301000301
</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
我尝试使用driver.findElement(By.xpath("//table[@id='myTable']/tbody/tr/td")).getText();
它返回空白字符串。我需要从中获取“您已将 1,000.00 美元转入 DIST2。您的余额现在为 19,979,000.00 美元。参考:2017011806292760301000301”。我认为 td 元素包含一个标签,这就是它不返回值的原因。
有什么方法可以获取值吗?
我制作了一个名为 pycyrpto_tx 的 python 库,并将其上传到 github 上,但我查看了洞察选项卡,我意识到我得到的克隆比访客还多,您能解释一下发生了什么吗?
正如你所看到的,我有超过 1,000 个克隆,但我只有 200 个来自 github 的访问者
如您所见,我获得的克隆比访问者多,而且我没有理由获得如此多的克隆,这是错误还是正常?