小编Deb*_*anB的帖子

如何使用 Python 查找 Pycharm 的版本

我有一个程序可以从我的系统中获取版本(selenium、python 和 chrome),并将其与在线最新版本进行比较。

这是从我的系统获取 pythons 版本的代码

    pythonVersion = platform.python_version()
    finalVersion = "Python " + pythonVersion
Run Code Online (Sandbox Code Playgroud)

现在我的主要问题是尝试使用代码获取 Pycharms 版本。如果有人知道如何做到这一点,那将会很有帮助

python version pycharm

2
推荐指数
1
解决办法
6664
查看次数

使用类名并包含文本的 XPath

我正在寻找如何查找具有类并包含文本的元素的答案。

我有两个答案。

对我来说,只有第二个答案有效。任何人都可以解释“包含文本”部分的区别吗?因为两个答案都没有提及。

selenium xpath webdriver xpath-1.0 selenium-webdriver

2
推荐指数
1
解决办法
9033
查看次数

Selenium 中的 execute_script() 有什么作用

browser.execute_script("window.open('about:blank', 'tab2');")
browser.switch_to.window("tab2")
browser.get('http://bing.com')
Run Code Online (Sandbox Code Playgroud)

我在网上搜索在 python 中使用 selenium 打开新选项卡的方法,并且ctrl + 的方法t不适用于 chrome,所以我偶然发现了上面的一段代码,但是我无法理解 'excute_script' 的作用。

javascript python selenium webdriver selenium-webdriver

2
推荐指数
1
解决办法
1734
查看次数

Selenium [Java] PageFactory Design:我在哪里编写我的断言遵循页面对象模型

我正在遵循页面对象模型来自动化一个应用程序中的流程。在其中一个模块中,我必须声明页面标题和更多消息。到目前为止,我将我的断言代码放在 PageFactory 本身中,如下所示:

public class EditPost {

    WebDriver driver;

    public EditPost(WebDriver editPostDriver)
    {
        this.driver=editPostDriver;
    }

    @FindBy(how=How.XPATH,using="//*[@id='message']/p")
    WebElement post_published;

    public void assert_message()
    {
        String actual_message_title=post_published.getText();
        Assert.assertEquals(actual_message_title, "Post published. View post");
        System.out.println("Message: Post published, Successfully Verified");
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在从实现 TestNG 的主文件中调用 assert 方法,如下所示:

@Test (priority=5)
public void assert_message()
{
    //Created Page Object using Page Factory
    EditPost edit_post = PageFactory.initElements(driver, EditPost.class);
    edit_post.assert_message();

}
Run Code Online (Sandbox Code Playgroud)

目前,我正在通过 3 个包运行执行。浏览器工厂的“Helper”包,PageFactories 的“Pages”包和测试用例的“Testcase”包。

我的目标是向前迈进,我想重用为所有不同实用程序编写的代码。

我的问题是:

  1. 根据 PageFactory & Page Object Model 的概念,我的方法是否正确?或者我是否需要将断言移动到“Helper”包?或者我应该为断言创建一个单独的库/包?(在接下来的日子里,我可能需要在一个页面上执行多个断言)

  2. 在下一个冲刺中,我可能需要做一些其他的活动,比如对所有/失败的测试用例进行屏幕截图。那么我如何保持我的设计结构和组织,以便我可以以最佳方式重用代码/库/利用它们?

java selenium design-patterns pageobjects

1
推荐指数
1
解决办法
1452
查看次数

clear()不会使用selenium和python和firefox清除文本框

clear()在这种情况下不起作用。我追加后追加。
searchForMovie.clear()无法运作...我也曾尝试传送
CTRL + 'a',然后传送DELETE。同样,我得到的只是附件...

 for movie in allMissing:

            time.sleep (10)

            searchForMovie = WebDriverWait (driver, 10).until \
                (EC.presence_of_element_located ((By.CSS_SELECTOR, "#search-text")))  

            searchForMovie.send_keys (movie)

            # click
            enter = WebDriverWait (driver, 10).until \
                (EC.presence_of_element_located ((By.CSS_SELECTOR, "#search-submit")))  

            driver.execute_script ("arguments[0].click()", enter)


            # clear the search text box
            searchForMovie = WebDriverWait (driver, 10).until \
                (EC.presence_of_element_located ((By.CSS_SELECTOR, "#search-text")))

            searchForMovie.clear()
Run Code Online (Sandbox Code Playgroud)

selenium css-selectors python-3.x selenium-webdriver webdriverwait

1
推荐指数
1
解决办法
2640
查看次数

chromedriver无法正常工作并出现错误:在webdriverio框架工作中连接ECONNREFUSED 127.0.0.1:4444

我正在使用webdriverIO Mocha框架工作,我尝试了许多解决方案,但仍收到以下错误。所以帮我解决这个问题

[23:57:52]??COMMAND???? POST???? "/wd/hub/session" [23:57:52]??DATA????????????????{"desiredCapabilities":{"javascriptEnabled":true,"locationContextEnabled":true,"handlesAlerts":true,"rotatable":true,"browserName":"firefox","platform":"macOS
10.12","version":"latest","build":"MAC_CHROME","pageLoadStrategy":"normal","acceptSslCerts":true,"_":"2 more keys: [\"loggingPrefs\",\"requestOrigins\"]"}} ERROR: connect ECONNREFUSED 127.0.0.1:4444
Run Code Online (Sandbox Code Playgroud)

selenium selenium-chromedriver selenium-webdriver webdriver-io

1
推荐指数
1
解决办法
2492
查看次数

如何通过 Selenium 和 Java 使用 setCapability() 忽略 Internet Explorer 的保护模式设置?

我正在尝试使用 IE 在 java selenium 中进行测试,但我的问题是我必须继续在保护模式下配置设置,这是已弃用功能的替代方法

WebDriver driver = new InternetExplorerDriver(cap);
Run Code Online (Sandbox Code Playgroud)

因为我希望在没有人工交互的情况下实现此自动化。我在 Eclipse 中使用这段代码,它在我的代码中根本没有任何效果,上面是用黄线荧光笔勾勒出来的,这表明它已被弃用。那么是否有一个新函数可以实现此目的,这是我一直用于完整性检查的代码

DesiredCapabilities cap = DesiredCapabilities.internetExplorer();
cap.setCapability("nativeEvents", false);
cap.setCapability("unexpectedAlertBehaviour", "accept");
cap.setCapability("ignoreProtectedModeSettings", true);
cap.setCapability("disable-popup-blocking", true);
cap.setCapability("enablePersistentHover", true);
cap.setCapability("ignoreZoomSetting", true);
cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS,true);
Run Code Online (Sandbox Code Playgroud)

java selenium selenium-webdriver selenium-iedriver mutablecapabilities

1
推荐指数
1
解决办法
6818
查看次数

将 Xpath 转换为 CSS 选择器

我正在努力将以下 Xpath 转换为 CSS:“//form[@id=\'giftcard-form\']/div[3]/div/button”。我知道我可以将 Xpath 用于我的 selenium JS,但由于某些奇怪的原因,它在我的情况下不起作用。我成功地转换了一个更简单的并在脚本中使用它,但我无法正确完成这个。任何人都可以帮忙吗?

javascript selenium xpath css-selectors selenium-webdriver

1
推荐指数
1
解决办法
1万
查看次数

选择器无效:使用Webdriver和Python的find_element_by_class_name不允许使用复合类名

我正在尝试通过webWhatsapp从聊天中打印我的消息之一。

我可以通过“控制台”选项卡中的Javascript完成此操作

recived_msg = document.getElementsByClassName('XELVh selectable-text invisible-space copyable-text') // returns an array of the chat
recived_msg[5].innerText // shows me the 4th message content
Run Code Online (Sandbox Code Playgroud)

问题是我试图在python上做同样的事情,但对我不起作用。

这是我尝试过的:

from selenium import webdriver
recived_msg = driver.find_element_by_class_name('XELVh selectable-text invisible-space copyable-text')
final = recived_msg[5].innerText #doesnt work for some reason
Run Code Online (Sandbox Code Playgroud)

我遇到的错误是:消息:无效的选择器:不允许使用复合类名

我对javascript有点陌生,所以很抱歉造成误会,并感谢您的帮助!:)

xpath webdriver css-selectors python-3.x selenium-webdriver

1
推荐指数
1
解决办法
815
查看次数

如何使用 Python 抑制通过 Selenium 和 ChromeDriver 启动的 Brave 浏览器中的产品分析通知栏

我可以使用 Selenium、ChromeDriver 和 Python 启动 Brave 浏览器

代码试验:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

options = Options()
options.binary_location = r'C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe'
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
s = Service('C:\\BrowserDrivers\\chromedriver.exe')
driver = webdriver.Chrome(service=s, options=options)
driver.get("https://www.google.com/")
Run Code Online (Sandbox Code Playgroud)

但我无法摆脱几乎与Google Chrome通知栏类似的产品分析通知栏。

barve_product_analytics_notification_bar

谁能帮我吗?

python selenium google-chrome selenium-chromedriver brave-browser

1
推荐指数
1
解决办法
795
查看次数