Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用selenium将python从mac迁移到pc_Python_Macos_Selenium_Xpath_Cross Platform - Fatal编程技术网

使用selenium将python从mac迁移到pc

使用selenium将python从mac迁移到pc,python,macos,selenium,xpath,cross-platform,Python,Macos,Selenium,Xpath,Cross Platform,对我来说,这应该是非常直接的,但我有一些问题 我有一些python代码可以在我的mac上完美地运行(最新的OS py27),但是现在我正试图将这些代码带到我的pc上,以便计划和完全自动化(win8 py27),我在代码上遇到了一些错误,否则就可以正常工作 代码如下所示: def getElementsByxPath(mydriver,xPath,argKeys): try: a = mydriver.find_elements_by_xpath(xPath);

对我来说,这应该是非常直接的,但我有一些问题

我有一些python代码可以在我的mac上完美地运行(最新的OS py27),但是现在我正试图将这些代码带到我的pc上,以便计划和完全自动化(win8 py27),我在代码上遇到了一些错误,否则就可以正常工作

代码如下所示:

def getElementsByxPath(mydriver,xPath,argKeys):

   try:

       a = mydriver.find_elements_by_xpath(xPath);
       a.send_keys(argKeys) 
       #error caused here. mac handles error on sending keys while it seems windows does not.
       return a;
   except:
       print "Unexpected error:", sys.exc_info()[0];
       return 0;


elem = olrHelper.getElementsByxPath(mydriver, ".//tr[@class='list-item']");

for e2 in elem:
    time.sleep(2)

    tryClick(e2)

    try:
        listingID = e2.get_attribute("data-id") #listingID is populated when I debug
        #additionally e2.is_displayed()==True



        field1 = extractAddress(protectedExtractText(olrHelper.getElementByxPath(mydriver, ".//h1", "")))
        #field1 is not populated and returns my default exception value. very odd.
    except:
        print 'error'
在我的mac上,这段代码有效(selenium)。在我的电脑上,这不起作用(selenium)

在PC上找不到xpath元素

有没有人经历过类似的事情?我认为我可以很容易地实现跨操作系统的功能


谢谢

我的第一个猜测是,问题根本不在于Python代码,而在于HTML中的差异,因为它是由不同操作系统上的浏览器“修复”的。换句话说,我怀疑其中一个浏览器正在稍微修改接收到的HTML以使渲染更容易。我会在这两个文件上“查看源代码”并WinDiff它们。

嘿,不幸的是,我在PC上看到的元素与我在MacLouis上看到的定义完全相同。进一步说,我会创建一个本地HTML文档,它是仍然会创建错误的完整文档的最简单版本。通过这样做,您可以分离出错误的核心。此外,我建议将您的函数重命名为更准确的函数,如SendKeysNodePath。这真的是一个答案,还是一个注释?这是一种方法,希望是一种有用的方法。这个站点应该是关于帮助的,而不是关于定义的吹毛求疵。它用and标记,但是
getElementsByxPath
在Selenium的Python绑定中不是一个可用的调用(我浏览了整个源代码)。还有一些对代码的调用似乎是您的(例如,
extraAddress(…)
)。您的
try
语句也不会终止。您应该更新您的问题,以便它显示当您仅使用实际的Selenium调用时问题是如何发生的,并确保代码处于可执行状态。删除所有
try/except
块并发布完整的错误回溯。谢谢。(@Louis line 5是他使用selenium python绑定查找元素的地方。)你真的应该显示回溯。当它崩溃时,
argKeys
是什么?